内容简介: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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
CSS实战手册(第2版)
[美] David Sawyer McFarland / 俞黎敏 / 电子工业出版社 / 2010-6 / 69.80元
本书从介绍最基本的CSS知识开始,到建立用于打印网页的CSS和改进你的CSS习惯的最佳实践。将关于CSS的选择器、继承、层叠、格式化、边距、填充、边框、图片、网站导航、表格、表单、浮动布局、定位网页上的元素,以及用于打印网页的CSS等技术通过逐步地讲解与教程串联了起来。每章内容从简单到复杂,一步一步地建立起一个完整的教程示例,并在每章都会详细讨论一些技巧、最佳实践和各浏览器之间一致性的兼容问题及如......一起来看看 《CSS实战手册(第2版)》 这本书的介绍吧!