Lecteurs de ce message, je vous salue.
Nous développons en équipe un programme avec une interface graphique Tkinter. Cette interface contient des classes de conteneurs (3 canvas et 2 frames) dont un est utilisé par un retour vidéo grâce à la librairie OpenCV. Ils sont tous créés à partir d'une classe de base, Fenetre, où est créée la fenêtre comportant tous les conteneurs. Plusieurs fois nous appelons un conteneur depuis un autre. Le but recherché est de mettre à jour les éléments de certains conteneurs (variables, labels, etc) depuis d'autres conteneurs.
En langage Java par exemple, on peut faire un ConteneurX.getInstance(), en python pas explicitement. Pour cela on utilise des threads ou des appels d'instances bricolés :
ou alors
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 def getInstance(cls): instance = None def singleton(*args): nonlocal instance if not instance: instance = cls(*args) return instance return singleton @getInstance class ConteneurA(Conteneur): ...blabla...
Est-ce une bonne approche ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class ConteneurB(Conteneur, Thread): def __init__(self, argument): Thread.__init__(self) ...blabla...
Merci de vos futures réponses.
Partager