2017-06-02 30 views
0

存在我的問題,我想在tabwidget的活動選項卡的mdiArea中實現新的子窗口。但是,今天唯一能做的事情就是在最後一個製表符/ mdiArea中添加一個小部件(我的代碼如下)。在Qtabwidget中將QMdiSubWindow動態實現爲QMdiArea

如何動態切換(無需獨立聲明每個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(); 
} 

回答

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

非常感謝你們的幫助,我跳,這將幫助別人。