千家信息网

python中装饰器信号与槽的示例分析

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要为大家展示了"python中装饰器信号与槽的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"python中装饰器信号与槽的示例分析"这篇
千家信息网最后更新 2025年01月20日python中装饰器信号与槽的示例分析

这篇文章主要为大家展示了"python中装饰器信号与槽的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"python中装饰器信号与槽的示例分析"这篇文章吧。

装饰器信号与槽

所谓装饰器信号与槽,就是通过装饰器的方法来定义信号与槽函数,具体的使用方法如下

@PyQt5.QtCore.pyqtSlot(参数)def on_发送者对象名称_发射信号名称(self,参数): pass

这种方法有效的前提是下面的函数已经执行:

QMetaObject.connectSlotsByName(QObject)

在上面的代码中,'发送者对象名称'就是使用setObjectName函数设置的名称,因此自定义槽函数的命名规则也可以看做:on+使用setObjectName设置的名称+信号名称

接下来是具体的实例

import sysfrom PyQt5.QtWidgets import QApplication,QWidget,QHBoxLayout,QPushButtonfrom PyQt5 import QtCoreclass CustWidget(QWidget): def __init__(self,parent=None):  super(CustWidget, self).__init__(parent)  #创建按钮,添加到自身窗口中  self.okButton=QPushButton('ok',self)  #使用setObjectName设置对象名称  self.okButton.setObjectName('okButton')  #设置自身的布局为水平布局,并添加按钮控件到其中  layout=QHBoxLayout(self)  layout.addWidget(self.okButton)  #TODo 第一种方法  #self.okButton.clicked.connect(self.okButton_clicked) #def okButton_clicked( self ): # print('单击了ok按钮')  #第二种方法  QtCore.QMetaObject.connectSlotsByName(self) @QtCore.pyqtSlot() def on_okButton_clicked( self ):  print('单击了ok按钮')if __name__ == '__main__': app=QApplication(sys.argv) win=CustWidget() win.show() sys.exit(app.exec_())

运行程序,显示效果如图,单击ok按钮,控制台打印预期调试信息

QtCore.QMetaObject.connectSlotsByName(self)

事实上,它是PyQt5中根据信号名称自动连接到槽函数的核心代码,这行代码用来将QObject中的子孙对象的某些对象按照其objectName连接到相应的槽函数,举个例子说名一下

假设代码QtCore.QMetaObject.connectSlotsByName(self)已经执行,则下面的代码

@QtCore.pyqtSlot()

def on_okButton_clicked( self ):

print('单击了ok按钮')

会被自动识别为下面的代码

def __init__(self,parent=None):

self.okButton.clicked.connect(self.okButton_clicked)

def okButton_clicked(self):

print('单击了ok按钮')

以上是"python中装饰器信号与槽的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

信号 名称 按钮 代码 函数 对象 方法 面的 中装 示例 分析 内容 篇文章 参数 发送者 就是 布局 学习 帮助 有效 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 客户机服务器模式 我的世界服务器里的东西被破坏 简述数据库的安全技术 在苏州的英雄联盟服务器是哪个区 爬虫放到服务器上安全吗 数据库与实例 杭州浩际网络技术公司 徐州常用网络技术推荐咨询 微芸网络技术 考研数据库 岳丽华视频 开通一个服务器多少钱 服务器怎么区分不同的客户端 无线传感器反应网络技术特征 微信支付服务器账号怎么注销 电子屏信息如何连接数据库 软件开发公司企业选址 天天飞网络技术 数据库中的图片怎么存储 吉林新一代网络技术服务咨询报价 dw怎么连接sql数据库 重庆安卓软件开发平台 电脑采用的网络技术 火影忍者下载软件开发 乐彩长虹互联网科技有限公司 软件开发的源代码是什么意思 武汉哪个地方招聘网络技术员 信息系统定级与网络安全等级 神话mc服务器 电子屏信息如何连接数据库 盐城公司网络安全准入控制系统
0