Comment exécuter le programme généré par pyuic4?
-
18-09-2019 - |
Question
Je suis nouveau à PyQt si je sais python un peu .. Je voulais Qt Designer pour la programmation graphique, car il va faire mon travail plus facile. J'ai pris une boîte de dialogue simple dans Qt Designer et converti en utilisant 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))
Je veux exécuter ce programme. Comment faire pour exécuter ce programme à partir de ce fichier en important ce? Je sais qu'il est une question fondamentale.
La solution
Vous pouvez passer le paramètre -x
à pyuic. Il va générer le code addtional pour rendre le script exécutable.
En application réelle, vous devriez mieux écrire une sous-classe de QMainWindow
qui pourrait ressembler à ceci:
# 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)
Et aussi créer un script exécutable principal dans le même répertoire que 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_())
Ensuite, exécutez ce dernier script pour lancer le programme.