pyqt5界面与逻辑分离--信号槽的装饰器实现方式
来源:互联网 发布:qq飞车神影官方数据 编辑:程序博客网 时间:2024/05/19 02:01
pyqt5界面与逻辑分离--信号槽的装饰器实现方式
本文展示了 pyqt5 信号槽的装饰器实现方式(借鉴自 eirc6)
一个简单的例子。实现功能:两个数相加,显示结果。如图
两个文件,第一个是界面文件 ui_calc.py
# ui_calc.pyfrom PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Calc(object): def setupUi(self, Form): self.inputSpinBox1 = QtWidgets.QSpinBox(Form) self.inputSpinBox1.setGeometry(QtCore.QRect(1, 26, 46, 25)) self.inputSpinBox1.setObjectName("inputSpinBox1") # 必须 self.inputSpinBox2 = QtWidgets.QSpinBox(Form) self.inputSpinBox2.setGeometry(QtCore.QRect(70, 26, 46, 25)) self.inputSpinBox2.setObjectName("inputSpinBox2") # 必须 self.outputWidget = QtWidgets.QLabel(Form) self.outputWidget.setGeometry(QtCore.QRect(140, 24, 36, 27)) self.outputWidget.setObjectName("outputWidget") # 必须 QtCore.QMetaObject.connectSlotsByName(Form) # 必须
说明:1. 界面部件需要setObjectname ; 2. 最后必须 QtCore.QMetaObject.connectSlotsByName(Form)
第二个是逻辑文件 calc.py
# calc.pyfrom PyQt5.QtCore import pyqtSlotfrom PyQt5.QtWidgets import QApplication, QWidgetfrom ui_calc import Ui_Calc# 方式一class MyCalc(QWidget): def __init__(self, parent=None): super().__init__(parent) self.ui = Ui_Calc() self.ui.setupUi(self) @pyqtSlot(int) def on_inputSpinBox1_valueChanged(self, value): self.ui.outputWidget.setText(str(value + self.ui.inputSpinBox2.value())) @pyqtSlot(int) def on_inputSpinBox2_valueChanged(self, value): self.ui.outputWidget.setText(str(value + self.ui.inputSpinBox1.value()))# 方式二class MyCalc2(QWidget, Ui_Calc): def __init__(self, parent=None): super().__init__(parent) self.setupUi(self) @pyqtSlot(int) def on_inputSpinBox1_valueChanged(self, value): self.outputWidget.setText(str(value + self.inputSpinBox2.value())) @pyqtSlot(int) def on_inputSpinBox2_valueChanged(self, value): self.outputWidget.setText(str(value + self.inputSpinBox1.value()))if __name__ == '__main__': import sys app = QApplication(sys.argv) win = MyCalc() # win = MyCalc2() win.show() sys.exit(app.exec_())
阅读全文
0 0
- pyqt5界面与逻辑分离--信号槽的装饰器实现方式
- Delphi中实现界面与业务逻辑的分离
- PyQt5系列教程(六)如何让界面和逻辑分离
- PyQt5 如何让界面和逻辑分离简介
- 逻辑与界面相分离
- MFC的 界面与逻辑分离(一)
- 界面层与业务逻辑层分离
- 界面层与业务逻辑层分离
- 界面层与逻辑层分离
- 界面层与业务逻辑层分离
- 界面层与业务逻辑层分离
- Pyqt5系列(七)-信号与槽机制
- C#实现界面与功能的分离:Ribbon界面
- 界面和逻辑分离
- PyQt5信号槽机制
- 利用浏览器实现程序界面与实现的分离
- 利用浏览器实现程序界面与实现的分离
- 利用浏览器实现程序界面与实现的分离
- BZOJ1034[ZJOI2008]泡泡堂BNB--贪心(田忌赛马)
- 第十周——项目一(2)—二叉树的构造
- tomcat配置https详解
- JavaScript ------- 文本内容 选择 (高级程序设计)
- Oracle分析函数
- pyqt5界面与逻辑分离--信号槽的装饰器实现方式
- jia
- ROS的参数服务器使用纪要
- 171210之JavaWeb简单的登录注册功能实现
- objective-c 编程基础(3.6 Foundation框架之数组)
- 数独问题
- 洛谷P2286 [HNOI2004]宠物收养场
- 机器学习实战第4章-朴素贝叶斯(bayes)
- 月息1分相当于年华利率多少