[python] PyQt a vybraný widget v QDialogu
Martin Stiborský
martin.stiborsky na gmail.com
Pátek Říjen 30 16:11:40 CET 2009
2009/10/30 Petr Vaněk <petr na scribus.info>:
> QButtonGroup je součástí standardního Qt GUI modulu.
>
> Stejně ale budeš muset ty checkboxy projet všechny, ať už je budeš přidávat do
> buttonGroup anebo při validaci dialogu zjišťovat, který je aktivní.
>
> Nebo můžeš použít třeba tohle:
> for i in dialog.findChildren("QCheckBox"):
> if (i.isChecked()):
> foo(i)
>
> atd.
Jo, takhle jsem to do teď dělal, ale nakonec jsem to vyřešil jinak a
líbí se mi to víc.
Pro dialogové okýnko jsem vytvořil vlastní třídu, v ní set(get) metody
pro ukládání aktuálně vybraného spinboxu, set metodu volá changed(int)
z KButtonGroup.
No a ve vlastní aplikaci pak mám něco jako:
if self.newQuestionDialog.exec_():
print self.newQuestionDialog.question
"question" je v tomto případě get metoda.
Kód třídy s dialogem: (snad to není extra blbě a třeba se to někomu hodí)
class NewQuestionDialog(QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self)
self._question = None
self.ui = Ui_newQuestion()
self.ui.setupUi(self)
def getQuestion(self):
return self._question
@QtCore.pyqtSignature("setQuestion(int)")
def setQuestion(self, int):
self._question = int
question = QtCore.pyqtProperty("int", getQuestion, setQuestion)
--
S pozdravem
Martin Stiborský
Jabber: stibi na njs.netlab.cz
ICQ: 224-065-849
Další informace o konferenci Python