国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Qt連接信號到子類槽函數提示父類無相應槽函數

2019-11-08 03:05:29
字體:
來源:轉載
供稿:網友

Qt連接信號到子類槽函數提示父類無相應槽函數

通過connect連接一個信號到子類的一個槽函數卻提示父類沒有對應的槽函數。

代碼

class Parent : public QObject{ Q_OBJECTpublic: 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個虛函數,是為了讓對象中產生虛表指針,生成動態類型信息。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴中市| 通渭县| 盘山县| SHOW| 黑水县| 百色市| 封开县| 松原市| 扎鲁特旗| 黑龙江省| 鹿泉市| 孝感市| 南川市| 安康市| 遂昌县| 台湾省| 南投市| 吴川市| 嘉鱼县| 蒙城县| 永年县| 宜兴市| 长白| 屏边| 乌兰浩特市| 双江| 布尔津县| 长葛市| 咸宁市| 南丰县| 北海市| 灌阳县| 信宜市| 清苑县| 顺平县| 集安市| 伽师县| 涿鹿县| 集贤县| 集贤县| 桃园县|