Wenn ich also in QtDesigner gehe und eine Benutzeroberfläche erstelle, wird diese als .ui-Datei gespeichert. Wie kann ich dies als Python-Datei erstellen oder in Python verwenden?
python
user-interface
qt
pyqt
qt-designer
Chris
quelle
quelle
Antworten:
Eine andere Möglichkeit, .ui in Ihrem Code zu verwenden, ist:
from PyQt4 import QtCore, QtGui, uic class MyWidget(QtGui.QWidget) ... #somewhere in constructor: uic.loadUi('MyWidget.ui', self)
Beide Ansätze sind gut. Vergessen Sie nicht, dass Sie Qt-Ressourcendateien (äußerst nützlich) für Symbole usw. auch kompilieren müssen, wenn Sie sie verwenden:
Beachten Sie, dass beim
uic
Kompilieren der Schnittstelle am Ende der PY-Datei 'import images_rc' hinzugefügt wird. Sie müssen also Ressourcen in die Datei mit diesem Namen kompilieren oder sie im generierten Code umbenennen.quelle
Die Kombination von Max Antwort und Shriramana Sharma Mailingliste senden , ich baute ein kleines funktionierendes Beispiel zum Laden einer
mywindow.ui
Datei mit einemQMainWindow
(so wählen , nur ein Hauptfenster in Qt Designer erstellen zu könnenFile-New
Dialog).Dies ist der Code, der es lädt:
import sys from PyQt4 import QtGui, uic class MyWindow(QtGui.QMainWindow): def __init__(self): super(MyWindow, self).__init__() uic.loadUi('mywindow.ui', self) self.show() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = MyWindow() sys.exit(app.exec_())
quelle
Sie müssen mit dem pyuic-Tool (site-packages \ pyqt4 \ bin) eine Python-Datei aus Ihrer UI-Datei generieren.
pyuic form1.ui > form1.py
mit pyqt4
pyuic4.bat form1.ui > form1.py
Dann können Sie das Formular1 in Ihr Skript importieren.
quelle
Ich fand diesen Artikel sehr hilfreich.
http://talk.maemo.org/archive/index.php/t-43663.html
Ich werde kurz die Aktionen zum Erstellen und Ändern der .ui-Datei in die .py-Datei aus diesem Artikel beschreiben.
ein "Label-Widget" hinzu. (Klicken Sie auf Drag & Drop)
Option "Speichern unter" auf.) Notieren Sie sich das Verzeichnis, in dem Sie Ihre .ui-
Datei "Hello World" gespeichert haben . (Ich habe meine in (C :) für die Bequemlichkeit gespeichert)
Die Datei wird erstellt und gespeichert, jetzt generieren wir den Python-Code daraus mit pyuic!
es in Pyscripter geöffnet, dann "starte" ich die Datei von dort)
Hoffe das hilft jemandem.
quelle
Sie können
uic
PyQt5 auch mit dem folgenden Code verwenden.from PyQt5 import uic, QtWidgets import sys class Ui(QtWidgets.QDialog): def __init__(self): super(Ui, self).__init__() uic.loadUi('SomeUi.ui', self) self.show() if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = Ui() sys.exit(app.exec_())
quelle
Meiner Meinung nach ist es sauberer, zuerst wie oben beschrieben nach .py zu exportieren:
pyuic4 foo.ui > foo.py
Und verwenden Sie es dann in Ihrem Code (z. B.
main.py
) wie:from foo import Ui_MyWindow class MyWindow(QtGui.QDialog): def __init__(self): super(MyWindow, self).__init__() self.ui = Ui_MyWindow() self.ui.setupUi(self) # go on setting up your handlers like: # self.ui.okButton.clicked.connect(function_name) # etc... def main(): app = QtGui.QApplication(sys.argv) w = MyWindow() w.show() sys.exit(app.exec_()) if __name__ == "__main__": main()
Auf diese Weise können andere Personen, die qt-designer nicht verwenden, den Code lesen, und Ihr Funktionscode bleibt außerhalb des Codes, der
foo.py
vom Designer überschrieben werden könnte. Sie verweisen einfachui
durch dieMyWindow
Klasse wie oben gezeigt.quelle
self.ui.okButton.clicked.connect(self.function_name)
gibt mirTypeError: event() takes 1 positional argument but 2 were given
. Wie haben Sie es gelöst?Mit dem folgenden Befehl können Sie Ihre .ui-Dateien in eine ausführbare Python-Datei konvertieren.
pyuic4 -x form1.ui > form1.py
Jetzt können Sie die Python-Datei sofort als ausführen
python3(whatever version) form1.py
Sie können diese Datei importieren und verwenden.
quelle
Sie können die UI-Dateien wie folgt kompilieren
pyuic4 -x helloworld.ui -o helloworld.py
quelle
Um .ui-Dateien zu .py-Dateien zu kompilieren, habe ich:
python pyuic.py form1.ui > form1.py
Att.
quelle
in pyqt5 zum Konvertieren von einer UI-Datei in eine .py-Datei
pyuic5.exe youruifile.ui -o outputpyfile.py -x
quelle
Verwenden von Anaconda3 (September 2018) und QT Designer 5.9.5. Speichern Sie Ihre Datei im QT-Designer als Benutzeroberfläche. Öffnen Sie die Anaconda-Eingabeaufforderung. Suchen Sie nach Ihrer Datei: cd C: .... (Kopieren Sie den Zugriffspfad Ihrer Datei und fügen Sie ihn ein). Dann schreiben Sie: pyuic5 -x helloworld.ui -o helloworld.py (helloworld = Name Ihrer Datei). Eingeben. Starten Sie Spyder. Öffnen Sie Ihre Datei .py.
quelle