今天利用QT写一个项目,在写代码的过程中,使用到了QT中一大特色【信号和槽】,对这个也是刚刚学习阶段,所以在这里遇到了一个问题:
error: static assertion failed: No Q_OBJECT in the class with the
signal # define Q_STATIC_ASSERT_X(Condition, Message)
static_assert(bool(Condition), Message)
其实这个问题主要是说明没有使用Q_OBJECT
主界面(我使用QMainWindows)是有这个关键字的,所以我以为是我没有继承QObject的问题,后来查资料得知,QMainWindows是继承QObject的,所以问题不在主界面上了。然后又是去论坛官网找资料,终于找到问题了,原来是发送信号的类没有带上Q_OBJECT,在发送信号的类和接收信号的类的头文件中加上Q_OBJECT,然后重新构建。
————————————————
版权声明:本文为优快云博主「驱魔鮔_Roc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_37859760/article/details/108113325
在QT编程过程中,作者遇到了一个关于信号和槽的静态断言错误,提示缺少Q_OBJECT。经过排查,发现并非由于主界面类未包含Q_OBJECT,而是发送和接收信号的类缺失了该宏。通过在相关类中添加Q_OBJECT并重新构建,问题得以解决。
2159

被折叠的 条评论
为什么被折叠?



