【发布时间】:2016-08-14 13:29:36
【问题描述】:
首先,类似的问题之前已经回答过,但我需要一些帮助。
我有一个窗口,其中包含一个按钮 (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()
但是on_pressed,出现这个错误信息:
AttributeError: 'Second' object has no attribute 'exec_'
(design1 和 design2 都来源于 Qt 设计器。)
任何想法将不胜感激。
【问题讨论】:
-
虽然
QDialog有一个exec_方法,但您已将QMainWindow子类化为没有该方法的子类。您可能想了解 tge 类之间的差异并决定要使用什么。