全屏窗口工作不正常



我有一个主窗口应该始终处于全屏模式。当按下按钮"时弹出对话框;打开对话框";单击。在桌面系统Ubuntu 20.04上,该应用程序运行正常。

当对话框弹出时,主窗口仍处于全屏模式。然而,在JetsonNano Ubuntu 18.04上,当对话框打开时,任务栏弹出,主窗口不处于全屏模式。有人遇到同样的问题吗?为什么会有区别?

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->showFullScreen();
}
void MainWindow::on_btn_dialog_clicked()
{
Dialog *dialog = new Dialog();
dialog->show();
}

文档说明:

全屏模式在Windows下运行良好,但在X下存在某些问题。这些问题是由于指定X11客户端和窗口管理器之间通信的ICCCM协议的限制。ICCCM根本不理解无装饰全面屏窗户的概念。因此,我们能做的最好的事情就是请求一个无边界窗口,并放置和调整其大小以填充整个屏幕。根据窗口管理器的不同,这可能起作用,也可能不起作用。无边界窗口是使用MOTIF提示请求的,几乎所有现代窗口管理器都至少部分支持MOTIF提示。

另一种选择是完全绕过窗口管理器,创建一个带有Qt::X11BypassWindowManagerHint标志的窗口。不过,这还有其他严重的问题,比如键盘焦点完全断裂,桌面更改或用户打开其他窗口时会产生非常奇怪的影响。

遵循现代后ICCCM规范的X11窗口管理器正确地支持全屏模式。

最新更新