try fix
This commit is contained in:
parent
fdff4bf9ef
commit
2f5a6a682e
27
Controll.py
27
Controll.py
@ -13,22 +13,21 @@ class ControllerSignals(QObject):
|
|||||||
signals = ControllerSignals()
|
signals = ControllerSignals()
|
||||||
|
|
||||||
def make_on_start(ctrl, widget):
|
def make_on_start(ctrl, widget):
|
||||||
def _start(_widget=widget, _ctrl=ctrl):
|
def _start(checked=False):
|
||||||
# NICHT blockieren: nur anstoßen
|
|
||||||
try:
|
try:
|
||||||
_ctrl.start() # -> startet seine eigenen Threads
|
ctrl.start() # startet Worker-Threads, blockiert nicht
|
||||||
_widget.set_running(True)
|
widget.set_running(True)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
signals.error.emit(_ctrl.dev.serial, str(e))
|
print(f"Fehler beim Start {ctrl.dev.serial}: {e}")
|
||||||
return _start
|
return _start
|
||||||
|
|
||||||
def make_on_stop(ctrl, widget):
|
def make_on_stop(ctrl, widget):
|
||||||
def _stop(_widget=widget, _ctrl=ctrl):
|
def _stop(checked=False):
|
||||||
try:
|
try:
|
||||||
_ctrl.stop()
|
ctrl.stop()
|
||||||
_widget.set_running(False)
|
widget.set_running(False)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
signals.error.emit(_ctrl.dev.serial, str(e))
|
print(f"Fehler beim Stop {ctrl.dev.serial}: {e}")
|
||||||
return _stop
|
return _stop
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -60,12 +59,18 @@ def main():
|
|||||||
# 3) Liste befüllen (auf der INSTANZ, nicht auf der Klasse!)
|
# 3) Liste befüllen (auf der INSTANZ, nicht auf der Klasse!)
|
||||||
for i, serial in enumerate(serials):
|
for i, serial in enumerate(serials):
|
||||||
ctrl = controllers[serial]
|
ctrl = controllers[serial]
|
||||||
|
placeholder = lambda checked=False: None
|
||||||
widget = win.add_list_item(
|
widget = win.add_list_item(
|
||||||
text=serial,
|
text=serial,
|
||||||
index=i,
|
index=i,
|
||||||
on_start=lambda w, c=ctrl: make_on_start(c, w)(),
|
on_start=make_on_start(ctrl, placeholder), # placeholder siehe unten
|
||||||
on_stop =lambda w, c=ctrl: make_on_stop(c, w)()
|
on_stop=make_on_stop(ctrl, placeholder),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
widget.btn_start.clicked.disconnect()
|
||||||
|
widget.btn_stop.clicked.disconnect()
|
||||||
|
widget.btn_start.clicked.connect(make_on_start(ctrl, widget))
|
||||||
|
widget.btn_stop.clicked.connect(make_on_stop(ctrl, widget))
|
||||||
|
|
||||||
# 4) Start
|
# 4) Start
|
||||||
win.show()
|
win.show()
|
||||||
|
|||||||
1
GUI.py
1
GUI.py
@ -51,6 +51,7 @@ class MainWindow(QWidget):
|
|||||||
item.setSizeHint(widget.sizeHint())
|
item.setSizeHint(widget.sizeHint())
|
||||||
self.list_widget.addItem(item)
|
self.list_widget.addItem(item)
|
||||||
self.list_widget.setItemWidget(item, widget)
|
self.list_widget.setItemWidget(item, widget)
|
||||||
|
return widget
|
||||||
|
|
||||||
# Die Aktionen, die beim Klick ausgeführt werden sollen
|
# Die Aktionen, die beim Klick ausgeführt werden sollen
|
||||||
def handle_start(self, index):
|
def handle_start(self, index):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user