Qtabwidget中QMdiSubWindow动态实现到QMdiArea

Dynamic implementation of QMdiSubWindow into QMdiArea in Qtabwidget

我的问题是,我想在 tabwidget 的活动选项卡的 mdiArea 中实现新的子窗口。但是你今天唯一能做的就是在最后创建的 tab/mdiArea 中添加一个小部件(我的代码在下面)。

如何动态切换(无需单独声明每个mdiArea)并填充当前tabwidget的mdiArea?

P.S:我尝试替换:

zoneCentrale->addSubWindow(subwindow) 

来自

ui->tabWidget->currentWidget()->addSubWindow(subwindow)

没有成功。

void MainWindow::settingsAddLayout_triggered()
{
    zoneCentrale = new QMdiArea;
    ui->tabWidget->addTab(zoneCentrale,"new");
}
void MainWindow::settingsEditLayout_triggered()
{
    testwidget *subwindow = new testwidget;

    QMdiSubWindow *uneSousFenetre = zoneCentrale->addSubWindow(subwindow);
    uneSousFenetre->setWindowFlags(Qt::FramelessWindowHint);
    uneSousFenetre->resize(200,200);
    subwindow->show();
}

我带着问题的解决方案回来了。 我已经声明,你有没有建议 QList mdiAreas; 之后,我在使用 tabwidget 的同时使用我的 QList。

添加:

Area = new QMdiArea;
mdiAreas.append(Area);
ui->tabWidget->addTab(Area,"new");
int lastindex = ui->tabWidget->count()-1;
ui->tabWidget->setCurrentIndex(lastindex);
actualMonitorIndex = lastindex;

编辑:

testwidget *instru= new testwidget;
QMdiSubWindow *instru;
subwindow = mdiAreas[actualMonitorIndex]->addSubWindow(instru);
instru->show();

非常感谢您的帮助,希望这对其他人有所帮助。