0

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

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

PS:我试图替换:

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();
}
4

1 回答 1

0

我回来解决问题。我已经声明,你有没有建议一个 QList mdiAreas;之后,我将我的 QList 与 tabwidget 并行使用。

添加:

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

非常感谢您的帮助,我跳,这将对其他人有所帮助。

于 2017-06-15T12:43:07.770 回答