0

I am making a GUI program in Qt.

I have one tab and in that tab there is push button, what I want is when that button is clicked then it should open a tab in the same widget and it should be closable. How can I do that? A example code will be good.

Thank you

4

1 に答える 1

2

私は質問を完全には理解していませんが、これが私の最善の回答です。QTabWidgetタブに使用すると思います。ウィジェットを追加して、次のコードで選択できます。

QWidget* widget;
int index = ui->tabWidget->addTab(widget, "Description");
ui->tabWidget->setCurrentIndex(index);

単一のタブを閉じられるようにすることはできませんが、close イベントをインターセプトすることはできます。

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");

クラスのドキュメントはこちらです。QTabWidget

于 2012-08-29T10:40:28.517 に答える