PyQt signals/slots dialogs question

Thomas Jollans thomas at jollybox.de
Mon Jun 7 16:27:10 EDT 2010


On 06/07/2010 08:21 PM, AlienBaby wrote:
> On Jun 7, 5:21 pm, AlienBaby <matt.j.war... at gmail.com> wrote:
>   
>> My real aim here is to learn pyqt, so I would rather not the the
>> QWizard process until I understand myself whats going on behind the
>> scenes.
>>     
> Perhaps I posted to early, but a little more perserverance and I have
> managed to unthaw the brain and move forward.  I've ended up with the
> following. It does what I need, and now it's working I can think
> around how to implement with a better approach;
>   
I haven't done much Qt programming, and all of it in C++, but anyway:

my approach is to subclass QFrame (or, here, QDialog makes sense), and,
in the constructor, set up the UI and call connect(...). In C++, there's
a connect macro -- is there a connect function in QtCore, maybe?
"welcome.ui.welcomeNext.connect(welcome.ui.welcomeNext, ..." doesn't
look right.
>
> from PyQt4 import QtCore, QtGui
> from WELCOME import Ui_Dialog as welcomeDialog
> from SOURCE_TYPE_SELECT import Ui_Dialog as sourceTypeSelectDialog
> from SOURCE_TYPE_CONFIRMATION import Ui_Dialog as
> sourceTypeConfirmationDialog
>
> ..>snip<
>
> class WelcomeDialog(QtGui.QDialog):
>     def __init__(self,parent=None):
>         QtGui.QWidget.__init__(self,parent)
>         self.ui=welcomeDialog()
>         self.ui.setupUi(self)
>
> class SourceTypeSelect(QtGui.QDialog):
>     def __init__(self,parent=None):
>         QtGui.QWidget.__init__(self,parent)
>         self.ui=sourceTypeSelectDialog()
>         self.ui.setupUi(self)
>
> class SourceTypeConfirmation(QtGui.QDialog):
>     def __init__(self,parent=None):
>         QtGui.QWidget.__init__(self,parent)
>         self.ui=sourceTypeConfirmationDialog()
>         self.ui.setupUi(self)
>
>
> def WelcomeNext():
>     welcome.hide()
>     sourceTypeSelect.show()
> def WelcomeCancel():
>     sys.exit()
>
>
> def SourceTypeSelectNext():
>     sourceTypeSelect.hide()
>     for widget in
> sourceTypeSelect.ui.availableChoices.findChildren(QtGui.QWidget):
>         if widget.isChecked():
>             print widget.text()
>  
> sourceTypeConfirmation.ui.selectedSourceType.setText(widget.text())
>     sourceTypeConfirmation.show()
> def SourceTypeSelectCancel():
>     sys.exit()
>
>
> def SourceTypeConfirmationBack():
>     sourceTypeConfirmation.hide()
>     sourceTypeSelect.show()
>
>
> if __name__ == "__main__":
>     app = QtGui.QApplication(sys.argv)
>
>     #Instance dialogs and connect buttons
>     welcome=WelcomeDialog()
>  
> welcome.ui.welcomeNext.connect(welcome.ui.welcomeNext,QtCore.SIGNAL("clicked()"),WelcomeNext)
>  
> welcome.ui.welcomeCancel.connect(welcome.ui.welcomeCancel,QtCore.SIGNAL("clicked()"),WelcomeCancel)
>
>
>     sourceTypeSelect=SourceTypeSelect()
>  
> sourceTypeSelect.ui.sourceTypeSelectNext.connect(sourceTypeSelect.ui.sourceTypeSelectNext,QtCore.SIGNAL("clicked()"),SourceTypeSelectNext)
>  
> sourceTypeSelect.ui.sourceTypeSelectCancel.connect(sourceTypeSelect.ui.sourceTypeSelectCancel,QtCore.SIGNAL("clicked()"),SourceTypeSelectCancel)
>
>
>     sourceTypeConfirmation=SourceTypeConfirmation()
>  
> sourceTypeConfirmation.ui.sourceTypeConfirmationBack.connect(sourceTypeConfirmation.ui.sourceTypeConfirmationBack,QtCore.SIGNAL("clicked()"),SourceTypeConfirmationBack)
>
>
>     welcome.show()
>     sys.exit(app.exec_())
>
>
>
>
>   




More information about the Python-list mailing list