QtDesigner changes will be lost after redesign User Interface
Изменения QtDesigner будут потеряны после редизайна пользовательского интерфейса
Я использую Qt Designer для разработки графического интерфейса для использования на python, после разработки желаемого пользовательского интерфейса в Qt Designer преобразовал его в код python, а затем изменил сгенерированный код, чтобы выполнить некоторые действия в моем коде python, но если я изменил пользовательский интерфейс с помощью Qt Designer и снова преобразовал его в код python, я потерял свои предыдущие изменения в своем коде.
как я могу решить проблему?
можем ли мы распространить класс на несколько файлов в python для написания кода в других файлах?
Переведено автоматически
Ответ 1
Чтобы избежать этих проблем, рекомендуется не изменять этот файл, а создать новый файл, в котором мы реализуем класс, использующий этот дизайн.
Например, предположим, что вы использовали MainWindow шаблон в design.ui файле, затем преобразуйте его в Ui_Design.py подобную следующей структуре:
PyQtClass: этот класс зависит от выбранного дизайна.
Template PyQtClass ───────────────────────────────────────────── Main Window QMainWindow Widget QWidget Dialog with Buttons Bottom QDialog Dialog with Buttons Right QDialog Dialog with Without Buttons QDialog
DesignClass: имя класса, которое отображается в вашем дизайне.
classLogic(QMainWindow, Ui_MainWindow): def__init__(self, *args, **kwargs): QMainWindow.__init__(self, *args, **kwargs) self.setupUi(self) defcloseEvent(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()
Ответ 2
Самый простой способ - использовать файл * .ui непосредственно в коде python, вам не нужно преобразовывать в файл * .py каждый раз, когда вы меняете пользовательский интерфейс. вы можете использовать этот псевдокод в своем проекте.
# use loaded ui file in the logic class classLogic(baseUIWidget, baseUIClass): def__init__(self, parent=None): super(Logic, self).__init__(parent) self.setupUi(self) . . . .