日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt中moc问题(qt moc 处理 cpp)

發布時間:2024/7/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt中moc问题(qt moc 处理 cpp) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Qt編譯常見的錯誤:

編譯報錯:

1>Linking...

1>cmmwindow.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall cmmwindow::metaObject(void)const " (?metaObject@cmmwindow@@UBEPBUQMetaObject@@XZ)

1>cmmwindow.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall cmmwindow::qt_metacast(char const *)" (?qt_metacast@cmmwindow@@UAEPAXPBD@Z)

1>cmmwindow.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall cmmwindow::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@cmmwindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z)

?

???? 顯然是少了東西了,然后我就查啊查,發現就跟Q_OBJECT這個宏有關。我用的是QT Designer,一般只有用到信號和槽時才會用到MOC,因為采用信號和槽是Qt的特性,而C++沒有,所以采用了MOC(元對象編譯器)把信號和槽部分編譯成C++語言。好,我們就用

moc mainwindow.h? –o moc_mainwindow.cpp

生成moc_mainwindow.cpp文件并加入工程。再次編譯通過。

?

???? 由于用的是QT Designer,一般只有用到信號signals和槽slots時才會用到MOC,因為采用信號signals和槽slots是QT的特性,而C++沒有,所以采用了MOC(元對象編譯器)把信號signals和槽slots部分編譯成C++語言。
用信號signals和槽slots需注意的基本問題是:
(1)、在類class聲明中必須加入Q_OBJECT;
(2)、在CPP文件中要把信號signals和槽slots聯系起來,即使用connect,例connect( iv, SIGNAL(clicked (QIconViewItem *)), this, SLOT( draw()));

再次強調:只要按上述方式就行了,因為MOC文件的生成和繼承都是自動的!!!

總結

以上是生活随笔為你收集整理的Qt中moc问题(qt moc 处理 cpp)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。