2013-09-01 30 views
2

添加組件到一個佈局創建惠特qt創建器我有一個問題,從代碼設置一些組件到使用qt創建者創建的佈局我試圖添加組件,當我運行我的窗口組件不顯示在這裏是一些代碼的SlotPLayerWidget是我創建也使用Qt Creator的從代碼

'#include "joinwidget.h" 
#include "ui_joinwidget.h" 
#include "ui/joingameteamselectionwidget.h" 
#include <QDebug> 
JoinWidget::JoinWidget(QWidget *parent) : 
    QWidget(parent), 
    ui(new Ui::JoinWidget) 
{ 
    ui->setupUi(this); 
    this->createPlayersSlots(8); 
} 

JoinWidget::~JoinWidget() 
{ 
    delete ui; 
} 

void JoinWidget::on_exitButton_clicked() 
{ 
    exit(0); 
} 

void JoinWidget::on_startGameButton_clicked() 
{ 
    //start game 
} 

void JoinWidget::on_mainMenuButton_clicked() 
{ 
    emit mainMenuButtonClicked(); 
} 

void JoinWidget::setPlayerName(QString playerName){ 
    this->playerName_ = playerName; 
} 

void JoinWidget::createPlayersSlots(int numberOfPlayers){ 

    for(int i = 0;i< numberOfPlayers; i++){ 
     SlotPlayerWidget widget; 
     ui->slotPlayersVerticalLayout->addWidget(&widget); 
    } 

}' 

回答

0

您分配堆棧上的小窗口中createPlayersSlots,並且會破壞小部件之前,你可以與他們做任何一個小部件,修復這將在堆上分配小部件。 LE:作爲Qt的一個規則,總是在堆上分配子窗口小部件(這很容易,因爲你不必跟蹤每一塊內存,當它被刪除時父窗口會刪除它們)和頂層窗口小部件(沒有父節點的小部件,應用程序的「主窗口」),您可以在堆棧上分配。