有谁能告诉我为什么这段代码不起作用? 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_()
答案 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
不会被调用)。