Widgets, die sich gegenseitig ausschließen
Verfasst: Donnerstag 26. Februar 2009, 11:17
hallo,
ich habe in einem mainwindow mehrere widgets (menu/toolbar actions) die abhängig von anderen widgets entweder enabled oder disabled sein sollen. z.b. open/close: actionClose soll erst dann enabled sein, wenn überhaupt eine datei geöffnet wurde.
oder play/pause/stop: logischerweise kann pause/stop nur nach start gedrückt werden, wobei start dann deaktiviert werden muss, und nach stop darf nur noch play enabled sein, und ...
bisher mache ich das alles mit signals und slots, aber allein an einem klick auf play hängt schon so ein langer rattenschwanz dran:gibt es vielleicht schon qt-klassen, die einem die arbeit abnehmen, oder wie macht man das sonst in der praxis?
Danke für eure Antworten
ich habe in einem mainwindow mehrere widgets (menu/toolbar actions) die abhängig von anderen widgets entweder enabled oder disabled sein sollen. z.b. open/close: actionClose soll erst dann enabled sein, wenn überhaupt eine datei geöffnet wurde.
oder play/pause/stop: logischerweise kann pause/stop nur nach start gedrückt werden, wobei start dann deaktiviert werden muss, und nach stop darf nur noch play enabled sein, und ...
bisher mache ich das alles mit signals und slots, aber allein an einem klick auf play hängt schon so ein langer rattenschwanz dran:
Code: Alles auswählen
from functools import partial as bind
...
self.connect(self.ui.actionStart, QtCore.SIGNAL('triggered()'),\
bind(self.ui.actionPause.setEnabled, True))
self.connect(self.ui.actionStart, QtCore.SIGNAL('triggered()'),\
bind(self.ui.actionStop.setEnabled, True))
self.connect(self.ui.actionStart, QtCore.SIGNAL('triggered()'),\
bind(self.ui.actionStart.setEnabled, False))
...
Danke für eure Antworten