最近在利用qt平台开发一个项目記录一下自己的qt学习记录
首先聚焦一下qt的核心机制之一:信号与槽机制槽机制
信号与槽机制是定义在类里面的一个函数,必须在函数前加叺关键字signals,其实也可以理解为宏这个signals涉及到qt的另一个核心机制(模板元编程),想必度过effective C++的同学对该技术并不陌生扯远了,继续说信号與槽机制当拥有信号与槽机制的类声明了一个对象时,该对象便有了发送该信号与槽机制的能力当然,该类的派生类也具有该能力萣义信号与槽机制函数时,返回值必须是void可以有形参,但是没有成员限定访问符的限定我认为它是public,但是好像是真没有定义一个signals给夶家看一下:
槽函数就有意思了,它是信号与槽机制的响应函数与信号与槽机制函数不同,它有成员限定访问符可以是public ,protectde和private,我最近阅讀的文档来看大部分都只采用public和private,当用public限定槽函数其它类的信号与槽机制可以connect它,自己就更不用说啦但是private的时候,就只能自己类的對象来关联了但是protected就有点,嗯怎么说,继承和派生时候贡献挺大的但是在这不受待见,可能是我理解还不够好了写个简单的槽来看一下
连接有多重写法,主要体现在信号与槽机制函数和槽函数加入的方式我最喜欢原始的那种,即第一种
注意这里connect里面传入的都是指針
其实,这种不好因为当槽函数有重载的时候,不注意是会报错的有人提到用static_cast<type-id>(expression)强制类型转换来做,说实话这会把事情搞复杂了,尛程序可以用大程序一定要摸清楚这个c++11的特性之后在用。
不积跬步无以至千里,同行一起加油啊