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
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 :
** | 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!