装饰器信号与槽
所谓装饰器信号与槽,就是通过装饰器的方法来定义信号与槽函数,具体的使用方法如下
@PyQt5.QtCore.pyqtSlot(参数) def> 导入系统 从PyQt5。QtWidgets进口QApplication QWidget、QHBoxLayout QPushButton 从PyQt5进口QtCore 类CustWidget (QWidget): def __init__(自我,父=None): 超级(CustWidget,自我). __init__(父) #创建按钮,添加到自身窗口中 self.okButton=QPushButton (“ok”,自我) #使用setObjectName设置对象名称 self.okButton.setObjectName (“okButton”) #设置自身的布局为水平布的局,并添加按钮控件到其中 布局=QHBoxLayout(自我) layout.addWidget (self.okButton) # TODo第一种方法 # self.okButton.clicked.connect (self.okButton_clicked) # def okButton_clicked(自我): #打印(“单击了好按钮”) #第二种方法 QtCore.QMetaObject.connectSlotsByName(自我) @QtCore.pyqtSlot () def alt=" python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例">QtCore.QMetaObject.connectSlotsByName(自我)
引用>事实上,它是PyQt5中根据信号名称自动连接到槽函数的核心代码,这行代码用来将QObject中的子孙对象的某些对象按照其objectName连接到相应的槽函数,举个例子说名一下
假设代码QtCore.QMetaObject.connectSlotsByName(自我)已经执行,则下面的代码
,@QtCore.pyqtSlot ()
,,def> 从PyQt5。QtCore进口QObject pyqtSignal 类SignalClass (QObject): #声明无参数的信号 signal1=pyqtSignal () #声明带一个int类型参数的信号 signal2=pyqtSignal (int) def __init__(自我,父=None): 超级(SignalClass,自我). __init__(父) #将signal1信号连接到两个槽函数 self.signal1.connect (self.sig1Call) self.signal1.connect (self.sig2Call) #将signal2信号连接到信号1 self.signal2.connect (self.signal1) #发射信号 self.signal1.emit () self.signal2.emit (1) #断开信号与槽函数的关系 self.signal1.disconnect (self.sig1Call) self.signal1.disconnect (self.sig2Call) self.signal2.disconnect (self.signal1) #绑定信号与槽函数 self.signal1.connect (self.sig1Call) self.signal2.connect (self.sig1Call) #信号发射 self.signal1.emit () self.signal2.emit (1) 1 #输出信号发射 def sig1Call(自我): print(信号1发出) 2 #输出信号发射 def sig2Call(自我): print(信号2发出) if __name__==癬_main__”: 信号=SignalClass ()
本文主要讲解了PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例,更多关于PyQt5信号与槽的知识请查看下面的相关链接