加入Q_OBJECT後出現錯誤

環境:

QT庫,沒有使用QT_CREATOR.也沒有設置環境變量,僅將QT庫作爲VS2005的第三方庫使用,庫中動態庫爲發佈時生成庫。


環境配製:

(1)QT中的包含庫加入到vs2005的附加包含目錄中,工程配製圖見附件。

(2)QT中的LIB加入到vs2005的附加庫目錄中,工程配製圖見附件。

(3)添加外部依賴庫,工程配製圖見附件。


創建一個自定義繼承於QWigdet的類。

#pragmaonce

#include<QtGui/QWidget>


classMyMainWnd:publicQWidget

{

public:

MyMainWnd(void);

public:

~MyMainWnd(void);

};


此類能夠正常使用,但是沒有自定義的信號與槽。如是我將其改爲如下:


#pragmaonce

#include "QtCore/qglobal.h"

#include<QtGui/QWidget>


classMyMainWnd:publicQWidget

{

Q_OBJECT

public:

MyMainWnd(void);

public:

~MyMainWnd(void);


public slots:

voidc_OnLFBtnClicked();

voidc_OnRFBtnClicked();


signals:

voids_OnRFBtnClicked();

};


   沒有加入MOC文件,結果出現LINK2001的錯誤,通過查網絡得知要以該文件生成MOC文件,然後在其實現文件中加入對MOC文件的包含。


如是我做了如下修改:

(1)D:\Qt\4.1.4\bin加入到系統環境變量中;

(2)創建了一個BAT文件,其內容爲mocMyMainWnd.h -o MyMainWnd.moc

(3)生成.moc文件,並將加加入到這個類的實現文件中;

(4)編譯並運行;


成功見到結果。


注:本文只爲遇到相同問題的朋友提供一個參考,不喜勿噴。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章