Qt5.9Creator中,使用信号与槽机制connect()函数时,出现错误提示:'QObject' is an inaccessible base of 'ClassA'

本文章主要描述了在Qt5.9Creator中,使用信号与槽机制connect()函数时,出现的错误和该错误的解决办法,具体的内容如下所述。


1.1我在使用connect()函数,当已经再三确认申明的信号和槽函数的用法是正确的,同时确认该类满足调用connect函数的条件(connect()函数正确用法和调用前提条件可以参考我之前写的一篇博客:

http://blog.csdn.net/naibozhuan3744/article/details/79221060)。可是编译时还是报错,错误提示:'QObject' is an inaccessible base of 'ClassA'  。具体的如下图所示:

Qt5.9Creator中,使用信号与槽机制connect()函数时,出现错误提示:'QObject' is an inaccessible base of 'ClassA'_第1张图片


1.2双击该错误,出现connect()函数错误。该错误的意思是类'ClassA'不能访问类'QObject'。

Qt5.9Creator中,使用信号与槽机制connect()函数时,出现错误提示:'QObject' is an inaccessible base of 'ClassA'_第2张图片


1.3既然知道了错误原因,那么错误的解决办法是让类'ClassA'可以访问类'QObject'就可以了,所以,需要在定义派生类ClassA的后面加个public,即ClassA:public QObject,具体的代码如下图所示:

Qt5.9Creator中,使用信号与槽机制connect()函数时,出现错误提示:'QObject' is an inaccessible base of 'ClassA'_第3张图片

正确定义ClassA派生类用法,加了public图


总而言之,当正确调用connect函数,自定义的信号和槽函数都没问题时,之所以出现上述错误,是因为在定义QObject的派生类时,错误定义,没有加一个public。所以错误的解决方案是定义一个QObject的public派生类。即ClassA:public QObject{} 。



参考内容:

http://www.cnblogs.com/ike_li/p/4990626.html

你可能感兴趣的:(Qt基础知识)