Closed yvesauad closed 4 years ago
je sais pas trop que est que si passe ici (la partie la plus important) et peut etre que on avait defini le boucle de tous le events ici? sais pas..
def create_spectro_panel(document_controller, panel_id, properties):
instrument = properties["instrument"]
#ui_handler =gainhandler(instrument, document_controller.event_loop) #MATHIEU
ui_handler =gainhandler(instrument, document_controller)
ui_view=gainView(instrument)
panel = Panel.Panel(document_controller, panel_id, properties)
finishes = list()
panel.widget = Declarative.construct(document_controller.ui, None, ui_view.ui_view, ui_handler, finishes)
for finish in finishes:
finish()
if ui_handler and hasattr(ui_handler, "init_handler"):
ui_handler.init_handler()
return panel
si tu fais self.property_changed_running_event.fire("yves_stuff")
tous les "listener" de self.property_changed_running_event
vont être notifiés que cette évenement à été activé pour une valeur "yves_stuff". Souvent, "yves_stuff" est le nom d'une property
. Il y a deux grandes utilisation de fire
dans swift.
widget
dans ta déclaration de ton UI. self.property_changed_running_event_listener=self.instrument.property_changed_running_event.listen(self.prepare_widget_enable)
je peux être plus précis si tu veux, mais en gros tu sembles n'avoir fait ni 1 ni 2 dans ton exemple
salut @kociak une petite question pour toi que je comprends pas..
On a ces deux trois events la (changed_running c'est a moi):
self.property_changed_event = Event.Event()
self.property_changed_running_event = Event.Event()
self.busy_event=Event.Event()
Dans le panneaux.py ils sont defini simplement comme ca:
self.property_changed_event_listener=self.instrument.property_changed_event.listen(self.prepare_widget_enable)
ou prepare_widget_enable c'est une methode async que tu connais bien parce que je vous ai volé. Dissons que j'ai definis les deux de la meme facon. Alors dans ce cas la ils sont absolument identique dans ma tete
si je mets un .fire sur
self.property_changed_running_event.fire("yves_stuff")
il ne mets pas le UI en mis au jour. Alors le Event se deroule une par fois et on peux par boucler deux? je comprends pas trop. Aussi bizarre c'est queself.busy_event.fire("ex:wavelength")
ne pas mis a jour le valleur dans le UI mais seulent bloque tout. Je comprends evidenment pouquoi il bloque tout (dans la definition async il y a la liste de widgets et tout ca) mais je vois pas la raison que il ne mets pas a jour la valeur.tu comprends que est je veux dire? si la question est pas claire je peux le faire avec un example plus propre.