我使用的是Python2.7版本,并使用pyqt4在python中进行GUI编程。我想从Ui_MainWindow1
调用到Ui_MainWindow2
。下面是代码:
类用户界面主窗口1
class Ui_MainWindow1(object):
def setupUi(self, MainWindow):
...
...
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(70, 90, 181, 27))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
MainWindow.setCentralWidget(self.centralwidget)
...
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"),self.callSecondWindow)
def callSecondWindow(self):
MainWindow2 = QtGui.QMainWindow()
ui = Ui_MainWindow2()
ui.setupUi(MainWindow2)
MainWindow2.show()
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow1()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Ui主窗口2
^{pr2}$当我点击Ui_MainWindow1
中的pushButton
时,它不会显示另一个GUI(Ui_MainWindow2
),也不会给出任何错误。在
怎么解决这个问题?需要帮助!在
看起来很乱。这是一种更常见的写法:
一些注意事项:
没有必要使用一个
setupUi
函数,python已经有了一个__init__
函数信号语法:
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"),self.callSecondWindow)
已被更具可读性的:
self.pushButton.released.connect(self.callSecondWindow)
通常没有理由将
QMainWindow
的实例保存在额外对象中,只需直接将其子类化大多数人对变量使用小写名称,对类使用大写名称,这只是一种约定,但它使其他人更容易阅读代码
相关问题 更多 >
编程相关推荐