2012-12-16 75 views
2

這是我的UI:與UI創建標籤編程

enter image description here

這片創建程序:

ui->tabWidget->addTab(new QWidget(), "Tab 2"); 

enter image description here

我想新創建的標籤有確切與「聊天室」選項卡具有相同的佈局。任何關於如何做到這一點的建議都會很棒。

+0

首先,您需要在主窗口中創建一個'QTabWidget' – 2012-12-16 14:42:42

+0

X.Jacobs:檢查更新的帖子。 – Carlj901

+0

您需要以編程方式在新選項卡中複製佈局。無論您如何創建第一個標籤,請執行相同的操作。 –

回答

3

在Designer中最簡單的方法是創建一個名爲ChatTab的新UI界面類,並將其基於QWidget

將您的聊天室小部件和佈局從您的MainWindow UI窗體移動(即剪切和粘貼)到ChatTab窗體,但將QTabWidget容器保留在MainWindow窗體中。如果您希望聊天室在第一次打開時位於主窗口中,請將其第一個QWidget從Designer內部推廣至ChatTab

任何附加標籤應編程添加像這樣:

ui->tabWidget->addTab(new ChatTab(), "Tab 2"); 

添加花哨的東西給ChatTab構造函數,如果你想使您的生活更輕鬆。

+0

與QTabWidget方法相比,此方法的另一個優點是「ChatTab」小部件可以在任何窗口中重用 - QDockWidget,QDialog,QMainWindow等。您只需將其放入內部一個包裝。 – Phlucious

1

你應該創建此佈局定製QTabWidget,姓名ChatWidget,使工廠API這樣的:

ChatWidget * ChatWidget::creater(TabWidget * tw, ChatData * cd) { 
    ChatWidget * cw = ChatWidget.create(); 
    tw.addTab(cast<QWidget>cw, 0); 
    // some init 
    ... 
    return cw; 
} 

很久沒有使用Qt和C++,可能是這會給你一個提示。

0

使用當前聊天室類作爲基類,並做一些佈局的東西在裏面;

下一次,你想創建一個新的標籤,只是這樣做:

ui->tabWidget->addTab(new chatRoom(), "Tab 3"); 

希望能有所幫助。