信号/槽的装饰器实现方式

在平时的开发中我们经常需要接触到信号和槽函数之类的情况今天我们一起来学习下信息好槽函数

这里写图片描述

先看下布局

#这个是布局文件
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Calc(object):
    def setupUi(self, form):
        self.inputSpinBox1 = QtWidgets.SQpinBox(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 = QtWidget.QLabel(Form)
        self.outputWidget.setgeometry(QtCore.QRect(140, 24, 36,27))
        self.outputWidget.setObjectname("outputWidget")

        QtCore.QMetaObject.connectSlotByName(Form)

这个是前台逻辑界面

import sys
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QApplication, QWidget
from 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.inputSpinBox2.value))
if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = MyCalc()
    win.show()
    sys.exit(app.exec_())

猜你喜欢

转载自blog.csdn.net/jeekmary/article/details/80216697