環境:
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)編譯並運行;
成功見到結果。
注:本文只爲遇到相同問題的朋友提供一個參考,不喜勿噴。