PyQt 逻辑与界面分离

将逻辑与界面分离是一种良好的软件设计实践,可以提高代码的可维护性和可扩展性。在使用 pyuic 工具转换 Qt Designer 的 .ui 文件时,你可以通过以下方式实现逻辑与界面的分离:

  1. 创建一个单独的 Python 模块,用于编写主窗口的逻辑代码。
  2. 在转换后的 Python 代码中,将逻辑相关的代码提取到新建的模块中,并进行相应的导入。

下面是一个示例,演示如何将逻辑与界面分离:

  1. 创建一个名为 my_logic.py 的新模块,用于编写逻辑代码:
python 复制代码
from my_ui_file import Ui_MainWindow
class MyLogic:
     def __init__(self):
         self.ui = Ui_MainWindow()

     def setup_connections(self):
         self.ui.button.clicked.connect(self.button_clicked)

     def button_clicked(self):
         # 处理按钮点击事件的逻辑
         self.ui.label.setText("Button clicked")
  1. 在转换后的 Python 代码中,导入并使用新的逻辑模块:
python 复制代码
from PyQt5 import QtWidgets
from my_logic import MyLogic

class MyWidget(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        # 创建 UI 实例
        self.my_logic = MyLogic()
        self.ui = self.my_logic.ui
        self.ui.setupUi(self)
        # 设置连接
        self.my_logic.setup_connections()
if __name__ == '__main__':
	app = QtWidgets.QApplication([])
	mw = MyWidget()
	mw.show()
	app.exec_()

在上面的示例中,我们创建了一个名为 MyLogic 的逻辑类,并将 UI 实例作为参数传递给它的构造函数。在逻辑类中,我们定义了一些处理按钮点击事件的逻辑,并使用 self.ui 来访问界面上的控件。

在转换后的 Python 代码中,我们导入了 my_logic.py 模块,并在主窗口的构造函数中创建了逻辑实例。然后,我们通过调用逻辑实例的方法来设置连接和处理事件。

通过这种方式,你可以将主窗口的逻辑代码与界面分离,使代码更加清晰、可读和易于维护。

希望这个示例对你有所帮助!

相关推荐
凌云拓界5 天前
TypeWell全攻略(二):热力图渲染引擎,让键盘发光
前端·后端·python·计算机外设·交互·pyqt·数据可视化
凌云拓界6 天前
TypeWell全攻略:AI健康教练+实时热力图开发实战 引言
前端·人工智能·后端·python·交互·pyqt·数据可视化
oBxkQwKTLam14 天前
三通道交错并联双向buck-boost变换器。 通过simulink搭建的三通道交错并联双向b...
pyqt
深蓝海拓16 天前
PySide6的QTimeLine详解
笔记·python·qt·学习·pyqt
龙腾AI白云17 天前
具身智能体的长期任务规划与记忆机制
python·scrapy·plotly·数据挖掘·pyqt
深蓝海拓18 天前
pyside6的时间相关的基础知识学习笔记
笔记·python·qt·学习·pyqt
无损检测小白白18 天前
【PYQT】QLineEdit控件的信号与槽
python·pyqt
onvadhFTH18 天前
开启数字电源PFC学习之旅
pyqt
深蓝海拓21 天前
PySide6,QCoreApplication::aboutToQuit与QtQore.qAddPostRoutine:退出前后的清理工作
笔记·python·qt·学习·pyqt
深蓝海拓23 天前
PySide6从0开始学习的笔记(二十七) 日志管理
笔记·python·学习·pyqt