2012-07-02 119 views
0

我對此佈局有問題。我寫在.cpp文件這個例子:編譯Qt項目時出現「佈局未聲明」錯誤

#include <QApplication> 
#include <QHBoxLayout> 
#include <QSlider> 
#include <QSpinBox> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QWidget *window = new QWidget; 
    window -> setWindowTitle("Enter your age please:"); 
    QSpinBox *spinBox = new QSpinBox; 

    layout -> addWidget(spinBox); 
    window -> show(); 
    return app.exec(); 
} 

我這些命令編譯:

qmake -project 
qmake 
make 

我得到這個錯誤:

age.cpp: In function ‘int main(int, char**)’: 
age.cpp:13:3: error: ‘layout’ was not declared in this scope 
make: *** [age.o] Error 1 

我搜索了這個錯誤,但找不到任何解決方案。誰能幫忙?

+3

您還沒有宣佈varibale'layout'你宣佈'window'或'app'。現在你明白了嗎? :) – SuperSaiyan

+2

請閱讀你的編譯錯誤。 – mfontanini

+4

Yeesh,可憐的OP得到所有這些-1。我們都犯了錯誤,並且一次都是新的。 – Anthony

回答

4

這顯然沒有在你的源代碼中聲明。例如,您應首先聲明一個QGridLayout變量,如下所示:

QGridLayout * layout = new QGridLayout; 
1

您還沒有聲明佈局。你需要的財產以後這樣

// add this 
    QLayout *layout = new QHBoxLayout; 
    window->setLayout(layout);