QT 全屏显示子窗口
QT 中全屏显示子窗口的方法
if(ui->dockWidget->windowFlags() == Qt::Window) {
ui->dockWidget->setWindowFlag(Qt::SubWindow);
ui->dockWidget->showNormal();
} else{
ui->dockWidget->setWindowFlag(Qt::Window);
ui->dockWidget->showFullScreen();
}
-
QT 中窗口部件 QWidget 成员函数 showFullScreen();是用于将窗口部件全屏显示 但是他只对窗口模式的部件有用。
-
子窗口的特征是 Qt::SubWindow不是独立的窗 口。因此对其调用 showFullScreen无效。
-
通过对子窗口调用setWindowFlags:Dialog或 setWindowFlagsQt::Window将其设为窗口模式后即可 调用 showFullScreen()。
-
QT 中 直接使用 move 和 resize 对窗口定位是没有效果的。 需要先将子窗口设位非 窗口模式。之后再将窗口移到理想位置。
-
即先调用 setWindowFlags Qt::Dialog 或者 setWindowFlags Qt::SubWindow 在调用 move 和 resize 函数。
-
有人提到退出全屏时 调用 showNormal 再调 setWindowFlags Qt::SubWindow
-
这有两个问题1showNormal也是只对顶级窗口有效。2可以考虑先调用 showNormal将窗口设为原来大小在将窗口设为子窗口模式。但这样窗口回到 父窗口之中也不会显示原来的大小。