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 模块,并在主窗口的构造函数中创建了逻辑实例。然后,我们通过调用逻辑实例的方法来设置连接和处理事件。

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

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

相关推荐
小灰灰搞电子9 小时前
PyQt 实现蜂巢菜单源码分享
pyqt·鱼眼凸起
znnnk11 小时前
【Python】GUI 开发从入门到实战(三):PyQt/PySide 进阶之路
开发语言·python·pyqt
民乐团扒谱机5 天前
【超详细】PyQt6 实现 AU 风格波形图编辑器:多级缩放与采样点逐级渲染,附全过程代码
开发语言·python·编辑器·pyqt·audition·时域·频谱图
典典分享指南6 天前
Excel SUMIFS 跨表汇总实战:多表条件求和的完整指南
django·flask·numpy·pyqt·fastapi
狮子雨恋9 天前
【无标题】
pyqt
微小冷11 天前
pyqt+matplotlib多进程图像刷新
pyqt·matplotlib·进程通信·多进程·queue·process
千里码aicood12 天前
PyQt基于卷积神经网络的智慧校园的设计与实现
人工智能·cnn·pyqt
千里码aicood12 天前
基于PyQt心理咨询机器人智能系统的设计与实现
机器人·pyqt
典典分享指南12 天前
Windows 自动化踩坑实录
python·intellij-idea·pyqt·emacs·visual studio
深蓝海拓15 天前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量
网络·笔记·python·学习·pyqt