Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich meine Codeänderungen beibehalten, wenn ich Qt Designer-Benutzeroberflächen in Python neu gestalte?

Wie kann ich meine Codeänderungen beibehalten, wenn ich Qt Designer-Benutzeroberflächen in Python neu gestalte?

Linda Hamilton
Linda HamiltonOriginal
2024-12-26 10:49:10827Durchsuche

How Can I Preserve My Code Changes When Redesigning Qt Designer UIs in Python?

Änderungen in Qt Designer-Schnittstellen nach Neugestaltung der Benutzeroberfläche beibehalten

Bei der Arbeit mit Qt Designer zum Erstellen grafischer Benutzeroberflächen (GUIs) für Python-Anwendungen, Beim Ändern der Benutzeroberfläche und beim Generieren aktualisierten Python-Codes muss unbedingt vermieden werden, dass frühere Änderungen verloren gehen. Um dieses Problem zu beheben, ziehen Sie die folgende Strategie in Betracht, anstatt den generierten Python-Code zu ändern:

Getrenntes Design und Logik in mehreren Dateien

  • Entwerfen Sie die Benutzeroberfläche in Qt Designer und konvertieren Sie es in eine Python-Datei, die das Design definiert, z. B. Ui_Design.py.
  • Erstellen Sie ein separates Modul. z.B. logic.py, das die Anwendungslogik implementiert und die Designdatei wie unten gezeigt verwendet:
from Ui_Design import Ui_MainWindow

class Logic(QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)

Durch die Verwaltung des Designs und der Logik in separaten Dateien können Sie die Benutzeroberfläche in Qt Designer ändern, ohne dass dies Auswirkungen hat der Logikcode.

Regeln zur Trennung von Design und Logik

Bei der Umsetzung dieser Strategie ist es von entscheidender Bedeutung Beachten Sie die folgenden Regeln:

  • PyQtClass: Wählen Sie die entsprechende PyQt-Klasse basierend auf der verwendeten UI-Vorlage aus. (Siehe Tabelle unten als Referenz)
  • DesignClass:Verwenden Sie den Namen der in der Designdatei definierten Klasse.
** Template PyQtClass **
Main Window QMainWindow
Widget QWidget
Dialog with Buttons Bottom QDialog
Dialog with Buttons Right QDialog
Dialog with Without Buttons QDialog

Erhaltung der Logik mit spezifischer Implementierung

Erwägen Sie beispielsweise, die Logik zum Schließen einer PyQt-MessageBox mit dem Schließereignis von beizubehalten das übergeordnete Fenster:

class Logic(QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)

    def closeEvent(self, event):
        answer = QtWidgets.QMessageBox.question(
            self,
            'Are you sure you want to quit ?',
            'Task is in progress !',
            QtWidgets.QMessageBox.Yes,
            QtWidgets.QMessageBox.No)
        if answer == QtWidgets.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

Durch Befolgen dieser Richtlinien können Sie Ihre Codeänderungen beim Ändern von Qt Designer-Benutzeroberflächen beibehalten, einen nahtlosen Arbeitsablauf gewährleisten und Datenverlust verhindern.

Das obige ist der detaillierte Inhalt vonWie kann ich meine Codeänderungen beibehalten, wenn ich Qt Designer-Benutzeroberflächen in Python neu gestalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn