I'm having some problems moving from Qt3 to Qt4. Kinda stuck in old habits I guess. Anyway, my current problem is to simply open a dialog window I have made with Designer but I can't for the life of me understand how to do it. In Qt3 it was just a matter of importing the dialog and do something like "if dialog.exec_loop() == QDialog.Accepted:". I have looked at the examples but I'm none the wiser I'm afraid.

My test code:
Main program:
-----------------------

import sys
from PyQt4 import QtGui , QtCore

from testGUI import Ui_MainWindow
from testdialog import Ui_Dialog #Not sure about this???

class testmain(QtGui.QMainWindow):
   def __init__(self):
       QtGui.QMainWindow.__init__(self )
self.ui = Ui_MainWindow()
       self.ui.setupUi(self)
self.connect(self.ui.testButton, QtCore.SIGNAL("clicked()"), self.doClicked) self.connect(self.ui.dialogButton, QtCore.SIGNAL("clicked()"), self.doDialog) def doClicked(self):
       self.ui.textEdit.insertPlainText("You clicked the button!")
def doDialog(self): ''' Want to do the equivalent to the Qt3 "if dialog.exec_loop() == QDialog.Accepted:" That is, open the 'testdialog.py' and check if the user click OK or Cancel''' pass if __name__ == "__main__":
   app = QtGui.QApplication(sys.argv)
   f = testmain()
   f.show()
   sys.exit(app.exec_())

----------------------------------
The dialog: tesdialog.py
---------------------------------
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'testDialog.ui'
#
# Created: Mon Mar 12 08:57:12 2007
#      by: PyQt4 UI code generator 4.1.1
#
# WARNING! All changes made in this file will be lost!

import sys
from PyQt4 import QtCore, QtGui

class Ui_Dialog(object):
   def setupUi(self, Dialog):
       Dialog.setObjectName("Dialog")
Dialog.resize(QtCore.QSize(QtCore.QRect(0,0,400,142).size()).expandedTo(Dialog.minimumSizeHint()))

       self.gridlayout = QtGui.QGridLayout(Dialog)
       self.gridlayout.setMargin(9)
       self.gridlayout.setSpacing(6)
       self.gridlayout.setObjectName("gridlayout")

       self.label = QtGui.QLabel(Dialog)
       self.label.setAlignment(QtCore.Qt.AlignCenter)
       self.label.setObjectName("label")
       self.gridlayout.addWidget(self.label,0,0,1,1)

       self.buttonBox = QtGui.QDialogButtonBox(Dialog)
       self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.NoButton|QtGui.QDialogButtonBox.Ok)
       self.buttonBox.setObjectName("buttonBox")
       self.gridlayout.addWidget(self.buttonBox,1,0,1,1)

       self.retranslateUi(Dialog)
QtCore.QObject.connect(self.buttonBox,QtCore.SIGNAL("accepted()"),Dialog.accept) QtCore.QObject.connect(self.buttonBox,QtCore.SIGNAL("rejected()"),Dialog.reject)
       QtCore.QMetaObject.connectSlotsByName(Dialog)

   def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("Dialog", "Click OK or Cancel", None, QtGui.QApplication.UnicodeUTF8))

-------------------------------------
If more info is needed let me know. I have also put the entire thing, including the .ui files at:
http://www.bestemselv.com/admin_priv/dialogtest.tar.gz

Thanks
Tina
_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to