内容简介:Qt连接信号到子类槽函数提示父类无相应槽函数
Qt连接信号到子类槽函数提示父类无相应槽函数
通过connect连接一个信号到子类的一个槽函数却提示父类没有对应的槽函数。
代码
class Parent : public QObject
{
Q_OBJECT
public:
Parent(){};
virtual ~Parent(){};
virtual int hi(){};
};
class Child : public Parent
{
Q_OBJECT //子类中要记得加这个宏
public:
Child(){};
virtual ~Child(){};
virtual int hi(){};
public slots:
void slotDoSomething();
};
分析
子类中切记要加注释处的那个宏。不然运行时可能会出现父类中无相应槽函数的提示,并且槽函数不会被信号触发。
某些高版本的Qt可以识别出这个宏缺少的错误,并在编译时报出来。但5.1及以下版本就不好说了。
个人的理解是用connect时,Child对象中只有父类对象部分表现出QObject的特征,可以用connect进行信号槽的连接。而父类中没有此槽函数,所以会报出这个提示。要解决这个“定位错误”的问题,就要让编译器知道Child类也有QObject的特征。也即不仅要派生自QObject类,同时也要添加Q_OBJECT宏。
添加了2个虚函数,是为了让对象中产生虚表指针,生成动态类型信息。
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-03/142015.htm
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 父类返回子类类型的函数写法
- python – 如何子类化大pandasDataFrame?
- 从python中的父类文件调用子类方法
- golang 父类调用子类方法、继承多态的实现方式
- ios – 在哪里为子类的uitableviewcell创建自动布局约束?
- C#中子类对基类方法的继承、重写和隐藏
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++语言的设计和演化
[美] Bjarne Stroustrup / 裘宗燕 / 机械工业出版社 / 2002-1 / 48.00元
这本书是C++的设计者关于C++语言的最主要著作之一。作者综合性地论述了C++的历史和发展,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景。一起来看看 《C++语言的设计和演化》 这本书的介绍吧!
URL 编码/解码
URL 编码/解码
XML、JSON 在线转换
在线XML、JSON转换工具