首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
Qt学习(一)
时间:
2018-11-30 15:32:32
阅读:
215
评论:
0
收藏:
0
[点我收藏+]
标签:
prot
字符
学习
功能
slot
无法获得
国际化
关系
cte
1.
2. 信号槽机制
所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。
QObject
一个类想要有信号槽功能,必须继承QObject,并且在类定义中使用
Q_OBJECT宏
,其在宏展开时会为类提供信号槽机制、国际化机制以及 Qt 提供的不基于 C++ RTTI 的反射能力
发送者和接收者都需要是QObject的子类(当然,槽函数是全局函数、Lambda 表达式等无需接收者的时候除外)
connect
使用connect的多个重载函数,来定义和建立信号槽关系(谁触发,谁接受,传什么,接受者干什么)
使用QObject::connect()函数连接信号和槽。
signals
使用 signals 标记信号函数,信号是一个函数声明,返回 void,不需要实现函数代码;
类中的signals块所列出的,就是该类的信号。信号就是一个个的函数名,返回值是 void(因为无法获得信号的返回值,所以也就无需返回任何值),参数是该类需要让外界知道的数据。信号作为函数名,不需要在 cpp 函数中添加任何实现
SIGNAL和SLOT宏
多用于connect函数中,将函数转换为字符串参数
多用于Qt4??,因此其只能有字符串参数?
emit
是 Qt 对 C++ 的扩展,是一个关键字(其实也是一个宏)。emit 的含义是发出,也就是发出某个信号
使用 emit 在恰当的位置发送信号;
槽函数是普通的成员函数,作为成员函数,会受到 public、private、protected 的影响;
Qt学习(一)
标签:
prot
字符
学习
功能
slot
无法获得
国际化
关系
cte
原文地址:https://www.cnblogs.com/wyp1988/p/10043822.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!