我正在Qt中製作一個GUI程序。使用Qt中的按鈕打開可關閉的標籤
我有一個選項卡,並在該選項卡中有按鈕,我想要的是當該按鈕被點擊時,它應該打開一個選項卡在同一個小部件,它應該是可關閉的。 我該怎麼做?示例代碼將會很好。
謝謝
我正在Qt中製作一個GUI程序。使用Qt中的按鈕打開可關閉的標籤
我有一個選項卡,並在該選項卡中有按鈕,我想要的是當該按鈕被點擊時,它應該打開一個選項卡在同一個小部件,它應該是可關閉的。 我該怎麼做?示例代碼將會很好。
謝謝
我不完全理解的問題,但這裏是在回答我最好的嘗試。我想你使用QTabWidget
作爲你的標籤。您可以通過下面的代碼添加窗口小部件,並選擇它:
QWidget* widget;
int index = ui->tabWidget->addTab(widget, "Description");
ui->tabWidget->setCurrentIndex(index);
你不能讓一個標籤關閉的,但你可以攔截關閉事件:
ui->tabWidget->setTabsClosable(true);
connect(ui->tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int)));
和處理不需要的關閉事件是這樣的:
void MainWindow::closeTab(int index)
{
if (index == 0)
{
return; // don't close the first tab
}
QWidget* widget = ui->tabWidget->widget(index);
ui->tabWidget->removeTab(index);
delete widget;
}
編輯:
你可以插入標籤:
ui->tabWidget->insertTab(index, widget, "Description");
這裏是documentation爲QTabWidget
類。
感謝您的回答。 你能告訴我如何隱藏單個標籤並顯示它們嗎?對於隱藏標籤我用ui-> tabWidget-> removeTab(3),這是成功的,但我不知道如何顯示它。你能告訴我嗎? –
我已經更新了我的答案。 HTH – bjoernz
感謝您的回覆。我嘗試了這樣ui-> tabWidget-> insertTab(3,ui-> tabWidget,「My Tab」);但是當我點擊我連接的按鈕時,我的程序就卡住了,停止響應。我做錯了什麼?謝謝。 –
我的理解是,在一個父窗口小部件中有兩個選項卡:tabA和tabB;當你點擊tabA中的一個按鈕時,tabB應該是opend。這可以做到。 但是,你是什麼意思「可關閉」? –
我的意思是 假設我的程序啓動了,那麼它應該只有一個標籤,即tabA可見,當點擊按鈕時,它應該打開標籤B,它應該在該標籤上有關閉按鈕,就像在Google Chrome標籤中一樣。 –