Qt連接信號到子類槽函數(shù)提示父類無相應槽函數(shù)
通過connect連接一個信號到子類的一個槽函數(shù)卻提示父類沒有對應的槽函數(shù)。
代碼 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(); }; 分析子類中切記要加注釋處的那個宏。不然運行時可能會出現(xiàn)父類中無相應槽函數(shù)的提示,并且槽函數(shù)不會被信號觸發(fā)。
某些高版本的Qt可以識別出這個宏缺少的錯誤,并在編譯時報出來。但5.1及以下版本就不好說了。
個人的理解是用connect時,Child對象中只有父類對象部分表現(xiàn)出QObject的特征,可以用connect進行信號槽的連接。而父類中沒有此槽函數(shù),所以會報出這個提示。要解決這個“定位錯誤”的問題,就要讓編譯器知道Child類也有QObject的特征。也即不僅要派生自QObject類,同時也要添加Q_OBJECT宏。
添加了2個虛函數(shù),是為了讓對象中產(chǎn)生虛表指針,生成動態(tài)類型信息。
【本文標簽】: 多層 pcb 多層PCB面板 沉金板 公司設備
【責任編輯】:鼎紀電子PCB??? 版權(quán)所有:http://ai-hots.com/轉(zhuǎn)載請注明出處
掃一掃更精彩!
2001-2018 深圳鼎紀電子有限公司 版權(quán)所有
粵ICP備16081348號
全國服務熱線:0755-27586790
24小時銷售熱線:18025855806|18682125228
地址:深圳市寶安區(qū)西鄉(xiāng)黃崗嶺工業(yè)區(qū)灣區(qū)人工智能產(chǎn)業(yè)園B棟605
深圳鼎紀電子有限公司:單面PCB板