2013-08-28 46 views
0

可能是一個簡單的問題:我剛剛在Qt創建器中創建了一個新項目,並在創建它時將它設置爲使用QWidget,現在我該如何擺脫它自動創建時的窗口我運行它?我也創建了我自己的QWidget窗口,我想成爲唯一的窗口。刪除Qt中的額外部件/窗口

#include "widget.h" 
#include <QtGui> 

Widget::Widget() 

{ 
    QWidget* window = new QWidget; 
    addBtn = new QPushButton("Add Module"); 
    text = new QTextEdit(); 
    text->setReadOnly(true); 
    QVBoxLayout* layout = new QVBoxLayout(); 
    layout->addWidget(addBtn,5); 
    layout->addWidget(text); 
    window->setLayout(layout); 
    window->show(); 
} 

Widget::~Widget() 
{ 

} 

#include <QtGui/QApplication> 
#include "widget.h" 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    Widget w; 
    w.show(); 

    return a.exec(); 
} 
+0

只是不創建它? Widget已經是一個小部件,爲什麼如果你不需要在構造函數中創建另一個QWidget呢? – Mat

+0

,因爲我不知道如何將佈局添加到已創建的佈局中,這就是爲什麼我創建了自己的 – Dmon

+1

然後,您應該花更多時間研究qt-project.org上的示例(並可能使用一本好的C++書籍) ,因爲它看起來像你在這裏錯過了一些基本面。這將導致嘗試編碼的痛苦經歷和沮喪。但是提示:你認爲用'setLayout(layout)'替換構造函數中的最後一行的意思是什麼?假設它被編譯,它會調用什麼? – Mat

回答

0

改變它像這樣

Widget::Widget() 

{   
    addBtn = new QPushButton("Add Module"); 
    text = new QTextEdit(); 
    text->setReadOnly(true); 
    QVBoxLayout* layout = new QVBoxLayout(); 
    layout->addWidget(addBtn,5); 
    layout->addWidget(text); 
    this->setLayout(layout); 
} 

,並嘗試對看一些時間和嘗試一些Qt的例子的(你可以在Qt Creator中找到它)

,並有大約100 short video快速學習Qt上的基本內容

Qt很有趣,很享受。

+0

你的權利我應該使用這個。 – dare