首页 > 后端开发 > Python教程 > 在 Python 中重新设计 Qt Designer UI 时如何保留代码更改?

在 Python 中重新设计 Qt Designer UI 时如何保留代码更改?

Linda Hamilton
发布: 2024-12-26 10:49:10
原创
829 人浏览过

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

UI 重新设计后保留 Qt Designer 界面中的更改

使用 Qt Designer 为 Python 应用程序创建图形用户界面 (GUI) 时,在修改 UI 和生成更新的 Python 代码时,避免丢失以前的更改至关重要。要解决此问题,不要修改生成的 Python 代码,而是考虑以下策略:

在多个文件中单独设计和逻辑

  • 设计 UI Qt Designer 并将其转换为定义设计的 Python 文件,例如 Ui_Design.py。
  • 创建一个单独的模块,例如logic.py,实现应用程序逻辑并使用如下所示的设计文件:
from Ui_Design import Ui_MainWindow

class Logic(QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)
登录后复制

通过在单独的文件中管理设计和逻辑,您可以修改 Qt Designer 中的 UI,而不会影响逻辑代码。

分离设计和逻辑的规则

实现此方法时策略,遵守以下规则至关重要:

  • PyQtClass: 根据使用的 UI 模板选择适当的 PyQt 类。 (参考下表)
  • DesignClass:使用设计文件中定义的类的名称。
** Template PyQtClass **
Main Window QMainWindow
Widget QWidget
Dialog with Buttons Bottom QDialog
Dialog with Buttons Right QDialog
Dialog with Without Buttons QDialog

保留逻辑具有特定实现

例如,考虑保留关闭 PyQt MessageBox 的逻辑与父窗口的关闭事件:

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()
登录后复制

通过遵循这些准则,您可以在修改 Qt Designer UI 时保留代码更改,确保无缝工作流程并防止数据丢失。

以上是在 Python 中重新设计 Qt Designer UI 时如何保留代码更改?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板