Wie führe ich das von Pyuic4 generierte Programm aus?
-
18-09-2019 - |
Frage
Ich bin neu in Pyqt, obwohl ich Python ein bisschen kenne. Ich wollte QT -Designer für GUI -Programme, da es meine Arbeit erleichtert. Ich habe einen einfachen Dialog im QT -Designer genommen und mit Pyuic4 konvertiert.
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))
Ich möchte dieses Programm ausführen. Wie stelle ich dieses Programm aus dieser Datei aus, indem ich diese importiere? Ich weiß, dass es eine sehr grundlegende Frage ist.
Lösung
Sie können passieren -x
Parameter zu Pyuic. Es generiert zusätzlichen Code, um das Skript ausführbar zu machen.
In der realen Anwendung sollten Sie eine Unterklasse besser schreiben QMainWindow
das könnte so aussehen:
# 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)
Erstellen Sie auch ein wichtiges ausführbares Skript im selben Verzeichnis wie 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_())
Führen Sie dann dieses letzte Skript aus, um das Programm zu starten.