Динамическая реализация QMdiSubWindow в QMdiArea в Qtabwidget

Есть моя проблема, я хочу реализовать новое подокно в mdiArea активной вкладки tabwidget. Но единственное, что вы можете сделать сегодня, это добавить виджет в последнюю созданную вкладку/mdiArea (мой код ниже).

Как я могу переключаться динамически (без объявления каждой mdiArea независимо) и заполнять mdiArea текущего виджета вкладки?

P.S. Пробовал заменить:

zoneCentrale->addSubWindow(subwindow) 

by

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

person Enao    schedule 02.06.2017    source источник


Ответы (1)


Возвращаюсь с решением проблемы. Я заявляю, вы предложили QList mdiAreas; После этого я использую свой 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();

Большое спасибо за вашу помощь, и я надеюсь, что это поможет кому-то еще.

person Enao    schedule 15.06.2017