内容简介: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#中子类对基类方法的继承、重写和隐藏
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Rationality for Mortals
Gerd Gigerenzer / Oxford University Press, USA / 2008-05-02 / USD 65.00
Gerd Gigerenzer's influential work examines the rationality of individuals not from the perspective of logic or probability, but from the point of view of adaptation to the real world of human behavio......一起来看看 《Rationality for Mortals》 这本书的介绍吧!