信号槽

编码时空的诗意行者5 个月前
开发语言·c++·qt·信号槽
C++实现简化 QtBase(5):通过IEventLoopHost扩展实现win32消息循环在上一篇文章《C++实现简化版Qt的QObject(4):增加简单实用的事件机制》中,我们实现了普通线程的事件机制。 但是事件机制往往需要和操作系统主线程消息循环一起工作。
编码时空的诗意行者5 个月前
c++·qt·反射机制·信号槽·qt framework·c++ 17
C++实现简化版Qt信号槽机制(2):增加内存安全保障在上一篇文章中《C++实现一个简单的Qt信号槽机制》,我们基于前面的反射代码实现了信号槽的功能。 但是上一篇的代码中没有对象生命周期管理的机制,如果在对象的生命周期结束后还存在未断开的信号和槽连接,那么信号触发时可能会尝试访问已经被析构的对象,从而引发内存访问异常。这个设计缺陷在C++越来越
编码时空的诗意行者5 个月前
开发语言·c++·qt·反射机制·信号槽
C++实现一个简单的Qt信号槽机制昨天写这个文章《深入探讨C++的高级反射机制(2):写个能用的反射库》的时候就在想,是不是也能在这套反射逻辑的基础上,实现一个类似Qt的信号槽机制?
春蕾夏荷_7282977257 个月前
qt·信号槽
Qt 信号槽中信号重名解决办法1、类似与Qt4中的写法:2、函数指针3、泛型connect(ui->combox, QOverload<int>::of(&QCombox::currentIndexChanged), this
凝视阳光、9 个月前
qt·信号槽·connect实现
QT信号槽实现分析qt中引入了MOC来反射,编译阶段变成 MOC–>预处理–>编译–>汇编–>链接这个宏定义了一系列代码,包括元对象和处理的函数
did_you1 年前
c++·qt·观察者模式·信号槽
【Qt信号槽源码分析】在”signals:” 字段之后声明一些函数,这些函数就是信号。而信号只要声明,不需要写实现。这是因为moc会为我们自动生成。另外触发信号时,不写emit关键字,直接调用信号函数,也是没有问题的。这是因为emit是一个空的宏     在”public slots:” 之后声明的函数,就是槽函数。 signals 关键字:最终被#define 置换为一个访问控制符public,其简化后的语法为#define signals public slots 关键字:最终被#define 置换为一个空宏,即简化后的语
@新法1 年前
开发语言·qt·信号槽
qt槽函数的四种写法不推荐这种写法,如果SLGNAL写错了,或者信号名字,槽函数名字写错了.编译器检查不出来,导致程序无响应,引起不必要的误解