如何运行PYUIC4生成的程序?
-
18-09-2019 - |
题
我是Pyqt的新手,尽管我有点了解Python。我在QT设计师中进行了一个简单的对话框,并使用PYUIC4进行了转换。
from PyQt4 import QtCore, QtGui
class Ui_Form1(object):
def setupUi(self, Form1):
Form1.setObjectName("Form1")
Form1.resize(495, 364)
self.listWidget = QtGui.QListWidget(Form1)
self.listWidget.setGeometry(QtCore.QRect(60, 100, 221, 111))
self.listWidget.setObjectName("listWidget")
self.lineEdit = QtGui.QLineEdit(Form1)
self.lineEdit.setGeometry(QtCore.QRect(60, 250, 221, 26))
self.lineEdit.setObjectName("lineEdit")
self.pushButton = QtGui.QPushButton(Form1)
self.pushButton.setGeometry(QtCore.QRect(350, 170, 92, 28))
self.pushButton.setAutoDefault(False)
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Form1)
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.listWidget.clear)
QtCore.QMetaObject.connectSlotsByName(Form1)
def retranslateUi(self, Form1):
Form1.setWindowTitle(QtGui.QApplication.translate("Form1", "Form1", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate("Form1", "X", None, QtGui.QApplication.UnicodeUTF8))
我想运行这个程序。如何通过导入此文件来运行此程序?我知道这是一个非常基本的问题。
解决方案
你可以通过 -x
PYUIC的参数。它将生成附加代码以使脚本可执行。
在实际应用中,您最好写一个子类 QMainWindow
看起来像这样:
# Store this code in the file MyMainWindow.py
from PyQt4.QtGui import *
class MyMainWindow(QMainWindow):
def __init__(self, ui_layout):
QMainWindow.__init__(self)
self.ui = ui_layout
ui_layout.setupUi(self)
并在与mymainwindow.py的同一目录中创建一个主可执行脚本:
from PyQt4.QtGui import *
from MyMainWindow import *
from Form1 import * # replace Form1 the name of your generated file
import sys
app = QApplication(sys.argv)
window = MyMainWindow(Ui_Form1())
window.show()
sys.exit(app.exec_())
然后运行最后一个脚本以启动程序。
不隶属于 StackOverflow