Hi, I'm just starting to get to grips with PyQt, and I'm having a bit of trouble connecting slots / signals, or understanding how I should do so to achieve what I am after.
I am trying to write an application that will display a sequence of dialogs, with back / next / cancel buttons to step through the dialogs. Each dialog will capture user input, ask the user to browse for a file, present some radio-buttons for a selection etc.. I've put the dialogs together in Designer, and I come to startup the app with a small piece of python code, create an instance of each dialog, and then connect up the buttons to any methods needed to control the movement through the dialogs etc. I'm having a brain-freeze though, and just can't figure out what I should be doing next, or the best approach to take. for example, Currently I am thinking I would need to connect the clicked() signal of the Next button on dialog 1 to a method say, 'dialog1Next' that would then hide dialog1 and show dialog2. I would then need to connect Dialog 2's clicked() signal of its next button to a method called 'dialog2Next' that hides dialog2 and shows dialog3 etc... I would also, for example, need methods for dialog2Back, dialog2cancel, dialog1cancel etc.. I'm having trouble figuring out how to setup the connections, and where the slot-methods should live.. I have this so far; 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 from ACCEPT_EULA import Ui_Dialog as acceptEulaDialog from CONFIRM_REQUIREMENTS import Ui_Dialog as confirmRequirementsDialog from SOURCE_BINARY_LOCATE import Ui_Dialog as sourceBinaryLocateDialog from SOURCE_BINARY_PROBLEMS import Ui_Dialog as sourceBinaryProblemsDialog from OUTFILE_LOCATE import Ui_Dialog as outfileLocateDialog from OUTFILE_PROBLEMS import Ui_Dialog as outfileProblemsDialog from COLLECTION_PROGRESS import Ui_Dialog as collectionProgressDialog from OUTFILE_LOCATION import Ui_Dialog as outfileLocationDialog class StartQT4(QtGui.QDialog): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.Welcome = welcomeDialog() self.Welcome.setupUi(self) self.SourceTypeSelect = sourceTypeSelectDialog() self.SourceTypeConfirmation = sourceTypeConfirmationDialog() self.AcceptEula = acceptEulaDialog() self.ConfirmRequirements=confirmRequirementsDialog() self.SourceBinaryLocate=sourceBinaryLocateDialog() self.SourceBinaryProblems=sourceBinaryProblemsDialog() self.OutfileLocate=outfileLocateDialog() self.OutfileProbelms=outfileProblemsDialog() self.CollectionProgress=collectionProgressDialog() self.OutfileLocation=outfileLocationDialog #Connect up next/back/cancel etc.. buttons ??? self.Welcome.connect(self.Welcome.welcomeNext, QtCore.SIGNAL("clicked()"),WelcomeNext) def WelcomeNext(): #Code here to hide Welcome dialog and show SourceTypeSelect dialog if __name__ == "__main__": app = QtGui.QApplication(sys.argv) myapp = StartQT4() myapp.show() sys.exit(app.exec_()) My questions are, am I approaching this the right way, with a method per action per dialog to move through the dialogs, and just how do I setup the connections I need. I'm getting confused with scope etc. IE: if the connect is right, and WelcomeNext fires, how can it refer to myapp.SourceTypeSelect.show() or myapp.Welcome.hide() Any help much appreciated. -- http://mail.python.org/mailman/listinfo/python-list