猿问

PyQT:如何打开新窗口

首先,之前已经回答过类似的问题,但是我需要对此有所帮助。


我有一个包含一个按钮的窗口(Class First),我想按下一个要显示的第二个空白窗口(Class Second)。


我弄弄了从这个问题复制的代码:单击打开新窗口时的PyQT,我编写了以下代码:


# -*- 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设计器。)


任何想法将不胜感激。



杨__羊羊
浏览 866回答 2
2回答

忽然笑

虽然QDialog有一个exec_方法,但您已将其子类化了QMainWindow,但没有该方法。您可能需要阅读一下tge类之间的区别,并决定要使用的内容。
随时随地看视频慕课网APP

相关分类

Python
我要回答