0

我有所以当一个人单击一个按钮时,它应该复制一个选项卡,但我遇到了tab->layout()只返回QLayout并且我无法转换它的问题QHBoxLayout

void MainWindow::on_dublicateSection_clicked()
{
    QWidget* tab = tabWidget->currentWidget();

    QWidget* newTab = new QWidget(tab);

    QHBoxLayout* layout = new QHBoxLayout(tab->layout());
    newTab->setLayout(layout);

    content->IncreaseArraySize(Section(tabWidget->count()));

    QString tabText = tabWidget->tabText(tabWidget->currentIndex());
    content->sections[tabWidget->count()].name = tabText;
    tabWidget->addTab(newTab,tabText);
}
4

1 回答 1

2

其实你可以。

QHBoxLayout* hbLayout = qobject_cast<QHBoxLayout*>(tab->layout());
Q_ASSERT(hbLayout);

但请记住,QObject派生类是不可复制的。

于 2015-03-18T09:13:22.513 回答