如何使用PyQt和QtDesigner显示自定义对话框来设计自定义对话框?

时间:2011-07-30 16:37:23

标签: pyqt

我设计了两个小部件 - 一个是主应用程序小部件和一个自定义小部件,它允许我在主应用程序中设置首选项。他们被命名为 - 主要和儿童。

现在,当我单击主应用程序中的按钮时,我无法显示子窗口小部件。 试图从使用Python和Qt书的Rapid GUI编程中学习,但是给出的示例是手写代码形式而不是使用QtDesigner设计的。我很困惑。请帮助。

到目前为止我的代码就是这个 -

import serial, sys

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from main import Ui_Form                      # main.py and child.py are the ui 
from child import Ui_Form as Child_Form       # files generated using pyuic4

class Main(QMainWindow):
    def __init__(self, parent = None):
        super(Main, self).__init__(parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.connect(self.ui.btnLaunch, SIGNAL("clicked()"), self.show)
    def show(self):
        dialog = QDialog()
        dialog.ui = Child_Form()
        dialog.ui.setupUi(self)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    myapp = Main()
    myapp.show()
    sys.exit(app.exec_())

但是,当我尝试启动此程序时,没有任何反应。

1 个答案:

答案 0 :(得分:0)

而不是这段代码:

self.connect(self.ui.btnLaunch, SIGNAL("clicked()"), self.show)
def show(self):
    dialog = QDialog()
    dialog.ui = Child_Form()
    dialog.ui.setupUi(self)

试试这个,它应该有效:

self.connect(self.ui.btnLaunch, SIGNAL("clicked()"), self.showDialog)
def showDialog(self):
    dialog = QDialog()
    dialog.ui = Child_Form()
    dialog.ui.setupUi(self)
    dialog.show()