QT Datei .ui in Python importieren

Um eine .ui-Datei in eine Python-Datei einzubinden, gibt es zwei Hauptmethoden:

Methode 1: Konvertierung in Python-Code

  1. Verwenden Sie das Kommandozeilentool pyuic5 (für PyQt5) oder pyside6-uic (für PySide6), um die .ui-Datei in eine Python-Klasse zu konvertieren:
pyuic5 input.ui -o output.py
  1. 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

  1. 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.