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 に答える