0
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。

4

1 回答 1

2

生成的类Ui_MainWindow不代表窗口本身,只代表其中包含的小部件。窗口是self您传递给的参数setupUi()

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

于 2012-09-09T19:36:27.660 回答