[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