首先,类似的问题以前已经有人回答过了,但是我需要在这个问题上得到一些帮助。
我有一个包含一个按钮 (Class First) 的窗口,并且当按钮被按下时,我希望出现第二个空白窗口 (Class Second)。
我尝试修改从这个问题中复制的代码:PyQT on click open new window,并编写了以下代码:
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore
import sys
import design1, design2
class Second(QtGui.QMainWindow, design2.Ui_MainWindow):
def __init__(self, parent=None):
super(Second, self).__init__(parent)
self.setupUi(self)
class First(QtGui.QMainWindow, design1.Ui_MainWindow):
def __init__(self, parent=None):
super(First, self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.on_pushButton_clicked)
self.dialog = Second(self)
def on_pushButton_clicked(self):
self.dialog.exec_()
def main():
app = QtGui.QApplication(sys.argv)
main = First()
main.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
但是当按下时,会出现这个错误消息:
AttributeError: 'Second' object has no attribute 'exec_'
(design1和design2是从Qt Designer派生出来的.)
非常感谢您的想法。
QDialog
有一个exec_
方法,但是您已经子类化了QMainWindow
,而该类没有该方法。您可能想要了解这些类之间的区别,并决定您想要使用哪个类。 - three_pineapples