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。
答案 0 :(得分:2)
生成的类Ui_MainWindow
不代表窗口本身,只代表其中包含的小部件。该窗口是您传递给self
的{{1}}参数。
要拥有2个窗口,您需要创建2个setupUi()
个对象,每个对象只有1个StartQt4
,并为每个对象调用Ui_MainWindow
。