当前位置 : 主页 > 手机开发 > 其它 >

Qt 信号和槽异常: QObject::connect: No Such slot ......

来源:互联网 收集:自由互联 发布时间:2021-06-19
小熊的情况描述: 父类A继承自QWidget,所以父类A自动添加了Q_OBJECT。 子类B继承自父类A,子类B没有添加Q_OBJECT。在子类B中给动态创建的控件添加事件和槽。编译通过,无警告,无错误。

小熊的情况描述:

    父类A继承自QWidget,所以父类A自动添加了Q_OBJECT。  子类B继承自父类A,子类B没有添加Q_OBJECT。在子类B中给动态创建的控件添加事件和槽。编译通过,无警告,无错误。运行时,应用程序输出栏显示:QObject::connect: No Such slot ......

网上扒拉扒拉很多网友给的方案是这样的:

以后要是碰到no such slot的问题
1、添加头文件#include<QCoreApplication>
2、看类声明中有没有Q_OBJECT
3、看slot函数有没有声明

private slots:
void xxxx();

4、查看slot有没有出现拼写错误~~~

然而,小熊并没有从方案一受益,于是接着发现了下面这样一个方案:

在xxx.pro文件中添加

OBJECTS_DIR  = tmp
MOC_DIR      = tmp

哈哈~百试不爽。 非常OK。

 

但是,问题接踵而至,再添加子类,子类C继承父类A,同样的场景,同样的处理方法,不见效了....what???请教网友了。

网友的力量真强大!!!

网友评论