Um eine .ui-Datei in eine Python-Datei einzubinden, gibt es zwei Hauptmethoden:
Methode 1: Konvertierung in Python-Code
- Verwenden Sie das Kommandozeilentool
pyuic5
(für PyQt5) oderpyside6-uic
(für PySide6), um die .ui-Datei in eine Python-Klasse zu konvertieren:
pyuic5 input.ui -o output.py
- Importieren Sie die generierte Klasse in Ihrem Hauptprogramm:
from output import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
Methode 2: Direkte Ladung der .ui-Datei
- Verwenden Sie QUiLoader, um die .ui-Datei zur Laufzeit zu laden:
from PySide6.QtUiTools import QUiLoader
from PySide6.QtCore import QFile, QIODevice
ui_file = QFile("mainwindow.ui")
ui_file.open(QIODevice.ReadOnly)
loader = QUiLoader()
window = loader.load(ui_file)
ui_file.close()
window.show()
Vor- und Nachteile
- Methode 1 ist effizienter und ermöglicht eine bessere Integration mit IDEs und Code-Vervollständigung.
- Methode 2 ist flexibler, da Sie die .ui-Datei zur Laufzeit ändern können, ohne den Python-Code neu zu kompilieren.
Zugriff auf Widgets
Bei beiden Methoden können Sie auf die Widgets über ihre Objektnamen zugreifen:
self.ui.pushButton.clicked.connect(self.on_button_click) # Methode 1
window.pushButton.clicked.connect(on_button_click) # Methode 2
Stellen Sie sicher, dass Sie den Widgets im Qt Designer aussagekräftige Objektnamen geben.