原文:Qt編程之信號與槽-------unresolved external symbol "public: virtual struct QMetaObject const * __thiscall XX::metaObject(void)const

原因是加入Q OBJECT這個macro的類,被編譯的時候就要用到moc這個命令,所以在VS 中,沒有加入此命令的應用,當然會出錯了。所以解決辦法是加,或者如果你不使用信號槽可以直接刪除。 當要在GUI中用到信號與槽,就需在.h文件中的類里寫入Q OBJECT宏。而任何含有Q Object的類都必須使用Qt的moc工具生成對應的cpp文件,然后在項目里面包含這個cpp,編譯才能成功,否則會出錯鏈接 ...

2014-07-25 10:19 0 3215 推薦指數:

查看詳情

Qt源碼分析之信號機制(QMetaObject是一個內部struct

Qt信號機制是Qt的一大特點,實際上這是和MFC中的消息映射機制相似的東西,要完成的事情也差不多,就是發送一個消息然后讓其它窗口響應,當然,這里的消息是廣義的說法,簡單點說就是如何在一個類的一個函數中觸發另一個類的另一個函數調用,而且還要把相關的參數傳遞過去.好像這和回調函數也有點關系 ...

Thu Jun 14 03:52:00 CST 2018 0 1495
無法解析的外部符號:qt_metacall metaObject(void) const qt_metacast

背景:在原有的項目上添加新的類,添加Q_OBJECT后報錯。 問題原因:VS在第一次編譯后,之后就不會再調用MOC命令。也就是再添加的類中有信號機制時(加Q_OBJECT),是不會調用MOC,將新的類轉化為標准C++兼容形式,就會報錯。 解決方法: 1.找到當前用的Qt版本,進入到 ...

Thu Jul 09 19:08:00 CST 2020 1 2022
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM