2014-05-04 30 views
1

我想學習一些Qt和c + +使用Windows(像往常一樣,我沒有問題)。安裝了Qt 5.2.1和vs加載項。引用不加載Qt使用VS2012

當我創建了最簡單的項目(一個對話框和標籤),我可以運行沒有問題,除非我試圖改變一些代碼,如:

SimpleLLabel::SimpleLLabel(QWidget *parent) 
    : QMainWindow(parent) 
{ 
    ui.setupUi(this); 
    label->hide(); 
} 

我收到以下錯誤:

1> simplellabel.cpp 1>simplellabel.cpp(8): error C2065: 'label' : identificador no declarado 1>simplellabel.cpp(8): error C2227: el operando izquierdo de '->hide' debe señalar al >tipo class/struct/union/generic

轉換爲標籤的未聲明標識符。

標籤通過Qt(名稱ui_simplellabel.h)存在於「生成的文件」文件夾中。此目錄中的所有文件都顯示爲沒有條目符號。我試圖將它們添加到「不從編譯中排除」,但沒有解決我的問題。另外文件夾「生成的文件」出現在項目屬性> C++>其他目錄中。

有關如何讓VS2012正確鏈接和編譯我的文件的任何提示?

+1

'label'是'SimpleLabel'的成員嗎?編譯器似乎並不這麼認爲... – Cameron

+0

正確,愚蠢的我使用ui.label的作品。 – Rockarolla

回答

1

您正在尋找這樣的:

ui.label->hide(); 
^^^ 

您的標籤所產生的UI文件的一部分等。你可能有一個UI成員,所以這是你需要使用的。

我會親自使用一個堆對象,又名。指針,而不是堆棧對象,但這並不是爲什麼你肯定會遇到編譯問題。

+0

因此將其保留爲: ui.setupUi(); ui.label-> hide(); 它的作品,但它的正確做法? – Rockarolla

+0

@Rockarolla:我不會那樣做,但你可以。 – lpapp