PyQt4:无法一次打开2个gui窗口

时间:2012-09-09 16:56:02

标签: python pyqt4

import sys
from PyQt4 import QtCore, QtGui
from test_ui import Ui_MainWindow

class StartQt4(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self)
        self.ui=Ui_MainWindow()
        self.ui2=Ui_MainWindow()
        self.ui2.setupUi(self)      # ui2 setup
        self.ui.setupUi(self)       # ui  setup .interchanging these 2 lines gives 2 guis


        QtCore.QObject.connect(self.ui.button_open,QtCore.SIGNAL("clicked()"),self.file_open)

    def file_open(self):
        self.ui.editor_window.setText('Yes u are doing good')

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

尝试创建简单的pyqt4 gui。我的目标是一次打开两个gui窗口,因此创建了2个对象ui ui2。通过交换被注释的行,它工作得很好,打开2个窗口。但是当我这样离开时,只有ui对象窗口被打开。怎么可能。它们只是在显示(myapp.show())之前在不同时间调用的方法?刚开始学习pyqt4。

1 个答案:

答案 0 :(得分:2)

生成的类Ui_MainWindow不代表窗口本身,只代表其中包含的小部件。该窗口是您传递给self的{​​{1}}参数。

要拥有2个窗口,您需要创建2个setupUi()个对象,每个对象只有1个StartQt4,并为每个对象调用Ui_MainWindow