Ui_MainWindow没有属性'show'

时间:2015-04-09 14:36:52

标签: python pyqt

我正在编写一个有多个窗口的程序。我有一个主程序(附加)调用Ui文件(已转换为.py)。主窗口和自定义窗口正确打开(前两个列出),但第三个或第四个窗口都没有正确打开,给我错误

'Ui_MainWindow' object has no attribute 'show'

主程序;

from PyQt4 import QtCore, QtGui
import sys

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    mainwin = main_menu_ui.Ui_MainWindow()
    mainwin.show()
    sys.exit(app.exec_())

def openCustomise(self):
    customiseOpen = question_set_menu_ui.Ui_MainWindow()
    customiseOpen.show()
    sys.exit(app.exec_())

def openQuiz(self):
    quizOpen = quiz_window_ui.Ui_MainWindow()
    quizOpen.show()
    sys.exit(app.exec_())

def addNewSet(self):
    addNewOpen = question_set_edit_ui.Ui_MainWindow()
    addNewOpen.show()
    sys.exit(app.exec_())

对不起,如果我遗漏了一些明显的东西,我正在学习Qt / Python大学。

1 个答案:

答案 0 :(得分:1)

您要导入的自动生成的UI类扩展为object,并且没有show方法(为您自己打开.py文件并验证这一点)。

通常,您应该像这样构建GUI:

from PyQt4 import QtCore, QtGui
import sys
from layout_file import main_menu_ui

class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = main_menu_ui()
        self.ui.setupUi(self)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    mainwin = MyForm()
    mainwin.show()
    sys.exit(app.exec_())

您可以从自动生成的UI文件中导入UI。您有一个包含GUI逻辑的类。然后,它会在导入的用户界面__init__()方法中设置您的UI布局。