Maison >développement back-end >Tutoriel Python >Comment puis-je conserver mes modifications de code lors de la refonte des interfaces utilisateur de Qt Designer en Python ?

Comment puis-je conserver mes modifications de code lors de la refonte des interfaces utilisateur de Qt Designer en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 10:49:10834parcourir

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

Préserver les modifications dans les interfaces de Qt Designer après la refonte de l'interface utilisateur

Lorsque vous travaillez avec Qt Designer pour créer des interfaces utilisateur graphiques (GUI) pour les applications Python, il est essentiel d'éviter de perdre les modifications précédentes lors de la modification de l'interface utilisateur et de la génération du code Python mis à jour. Pour résoudre ce problème, plutôt que de modifier le code Python généré, envisagez la stratégie suivante :

Conception et logique séparées dans plusieurs fichiers

  • Concevez l'interface utilisateur dans Qt Designer et convertissez-le en un fichier Python qui définit la conception, tel que Ui_Design.py.
  • Créez un module séparé, par ex. logic.py, qui implémente la logique de l'application et utilise le fichier de conception comme indiqué ci-dessous :
from Ui_Design import Ui_MainWindow

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

En gérant la conception et la logique dans des fichiers séparés, vous pouvez modifier l'interface utilisateur dans Qt Designer sans affecter le code logique.

Règles de séparation de la conception et de la logique

Lors de la mise en œuvre de cette stratégie, il est crucial respecter les règles suivantes :

  • PyQtClass : Sélectionnez la classe PyQt appropriée en fonction du modèle d'interface utilisateur utilisé. (Voir le tableau ci-dessous pour référence)
  • DesignClass :Utilisez le nom de la classe définie dans le fichier de conception.
** Template PyQtClass **
Main Window QMainWindow
Widget QWidget
Dialog with Buttons Bottom QDialog
Dialog with Buttons Right QDialog
Dialog with Without Buttons QDialog

Préservation de la logique avec une implémentation spécifique

Par exemple, pensez à conserver la logique pour fermer une MessageBox PyQt avec l'événement close du parent window :

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()

En suivant ces directives, vous pouvez conserver les modifications de votre code lors de la modification des interfaces utilisateur de Qt Designer, garantissant ainsi un flux de travail transparent et évitant la perte de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn