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();
非常感谢您的帮助,希望这对其他人有所帮助。
我的问题是,我想在 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();
非常感谢您的帮助,希望这对其他人有所帮助。