PyQt5 如何让界面和逻辑分离简介
2017-03-18 12:07
786 查看
前言
实例讲解
设计ui
ui转换成py
剥离ui和逻辑
main函数中调用
在这里去绑定相应的signal和slot,实现业务逻辑,这样代码结构也清晰多了,以后如果再遇到ui更新,我们只需将更新的ui文件替换并生成行的ui_***.py,这样就实现了ui和逻辑的分离。
实例讲解
设计ui
ui转换成py
剥离ui和逻辑
main函数中调用
前言
我们已经知道利用QtDesigner来设计界面,并通过Pycharm外部工具PyUIC将其转化成py源文件。不过由于要响应事件操作,往往会将相应的槽函数写在ui的py文件中,这样,界面和逻辑开发就混合在一起了,每一次的ui更新都会伴随着转换后py文件的槽函数的添加修改,及其不方便,造成效率低下。本例就来介绍如何将二者剥离。实例讲解
设计ui
我们通过Pycharm新建一个项目,并打开QtDesigner做一个简答的界面mainwindow.ui,在其上添加两个Button对应ID为World和China,一个label对应ID为Title,一个Line Edit对应的ID为lineEditui转换成py
在Pycharm中项目文件中选择mainwindow.ui右键选择外部工具–PyUIC,生成py源文件ui_mainwindow.py剥离ui和逻辑
在项目中新建文件mainwindow.py,创建类MainWindow类from PyQt5 import QtCore, QtGui, QtWidgets from ui_mainwindow import Ui_MainWindow class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self) self.Title.setText("hello Python") self.World.clicked.connect(self.onWorldClicked) self.China.clicked.connect(self.onChinaClicked) self.lineEdit.textChanged.connect(self.onlineEditTextChanged) def onWorldClicked(self, remark): print(remark) self.Title.setText("Hello World") def onChinaClicked(self): self.Title.setText("Hello China") def onlineEditTextChanged(self,p_str): self.Title.setText(p_str)
在这里去绑定相应的signal和slot,实现业务逻辑,这样代码结构也清晰多了,以后如果再遇到ui更新,我们只需将更新的ui文件替换并生成行的ui_***.py,这样就实现了ui和逻辑的分离。
main函数中调用
在项目中新建主函数main.py,在其上实例化类MainWindow,并调用show方法显示from PyQt5 import QtCore, QtGui, QtWidgets from mainwindow import MainWindow import sys if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) mainWindow = MainWindow() mainWindow.show() sys.exit(app.exec_())
相关文章推荐
- PyQt5 - 05 逻辑与界面分离使用pyqt5+socket实现TCP/UDP通信
- pyqt5界面与逻辑分离--信号槽的装饰器实现方式
- PyQt5系列教程(六)如何让界面和逻辑分离
- PyQt5 - 04 逻辑与界面分离并用sqlite3+hashlib实现登陆界面
- pyqt5界面与逻辑分离--信号槽的装饰器实现方式
- 如何将界面代码和功能代码分离(基于Delphi/VCL)
- MVP:界面与业务逻辑分离在Winform中的应用
- iOS关于如何让<界面切换逻辑>与<数据业务逻辑>解耦的探讨
- 解析大型.NET ERP系统 界面与逻辑分离
- tkinter的GUI设计:界面与逻辑分离(四)-- 与 matplotlib 结合
- The Book of Qt 4 翻译: 2.2 界面和处理逻辑的分离
- 界面层与业务逻辑分离
- tkinter的GUI设计:界面与逻辑分离(二)-- 菜单栏
- 如何在程序中部署界面和业务逻辑.
- 如何彻底的做到代码和界面分离
- MFC的 界面与逻辑分离(一)
- 如何进行界面和业务逻辑分开的原型化开发
- 如何有效的把业务逻辑和表现形式分离
- Delphi中实现界面与业务逻辑的分离
- 逻辑与界面相分离