显示对话框窗口

时间:2015-06-17 19:07:45

标签: python dialog pyqt4

有谁能告诉我为什么这段代码不起作用? Test4类是我转换的简单UI:

import sys
import Test4
from PyQt4 import QtGui, QtCore

class UiViewer(QtGui.QApplication, Test4.Ui_Dialog):

    def __init__(self, parent=None):
        return super(UiViewer, self).__init__(parent)
        self.setupUi(self)

    def main(self):
        self.show()

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)

    uiViewer = UiViewer()
    uiViewer.main()
    app.exec_()

2 个答案:

答案 0 :(得分:0)

首先 你需要使用

if __name__ == '__main__'

if name == 'main':

并且还添加错误消息并在运行时描述应用程序的行为将有助于跟踪问题。 从你的问题来看,它可能是任何数量的问题。

答案 1 :(得分:0)

您的UiViewer类需要从Qt Designer中的顶级窗口小部件继承同一个类(大概是QDialog,在您的情况下,它也可能是QMainWindow或a QWidget):

class UiViewer(QtGui.QDialog, Test4.Ui_Dialog):
    def __init__(self, parent=None):
        super(UiViewer, self).__init__(parent)
        self.setupUi(self)

请注意,您不得在return来电之前放置super,否则__init__功能将在此时退出,这意味着其余代码将无法使用执行(特别是,setupUi不会被调用)。