首页| 论坛| 消息

回复: slots是什么魔法?
#6 回 纹枰老妖 的帖子 [青空飞羽 09-25 09:38]
纹枰老妖:我实在是想不明白,那里的slots是什么样的宏定义,能给程序带来这样的差异。可以的话,大佬您能不能把自己当成编译器,解释下这句【private slots:】在您眼里是什么样子的?我的意思是,如果那个slots真的是宏定义,您可以帮我展开让我看一下它的终极样子吗? (2020-09-24 17:29) 
这个涉及到Qt的元编译器moc了,moc会先把signal这些Qt自己定义的关键字展开为一些标准C++代码用以实现信号/槽机制等Qt特有的特性
#7 Re:回 liudianwu 的帖子 [clickto 09-25 10:22]
纹枰老妖:
我实在是想不明白,那里的slots是什么样的宏定义,能给程序带来这样的差异。可以的话,大佬您能不能把自己当成编译器,解释下这句【private slots:】在您眼里是什么样子的?我的意思是,如果那个slots真的是宏定义,您可以帮我展开让我看一下它的终极样子吗?

首先,你要知道,signal-slot机制是qt在标准c++之上额外添加的一套元对象处理,具体的可查看在moc操作中生成的moc_xxx.cpp文件。但是相信我,作为初学者的你是不太愿意看第二遍的。比如:
定义槽函数:
展开:不知道什么鬼:
#8 回 lemonzll 的帖子 [纹枰老妖 09-25 10:48]
lemonzll:Qt的源文件会先用moc.exe处理下,生成个moc_xxx.cpp文件。这个slots是给moc.exe看的,所以定义成空的就行了,对C++代码而言没有意义,只是标记下让moc.exe把这个函数登记下 (2020-09-24 15:42) 
非常感谢各位热心朋友的回复。但目前来看,2楼的答案对我最有帮助,因为鄙人比较愚笨,有些答案看的我比较糊涂,但2楼朋友的答案让我搞清楚了大概原理,尤其他的是最后一句话,画龙点睛的效果!很棒!

<< 1 2 >> (2/2)

回复 发表
主题 版块