【问题标题】:FullScreen window is not working properly全屏窗口无法正常工作
【发布时间】:2021-08-02 15:16:36
【问题描述】:

我有一个应该始终处于全屏模式的 MainWindow。单击“打开对话框”按钮时会弹出一个对话框。在桌面系统 Ubuntu 20.04 上,该应用程序可以正常运行。

当对话框弹出时,主窗口保持全屏模式。但是,在 JetsonNano Ubuntu 18.04 上,打开 Dialog 时会弹出任务栏并且 MainWindow 未处于全屏模式。有没有人遇到同样的问题?为什么不一样?

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

【问题讨论】:

    标签: qt5 ubuntu-18.04 fullscreen ubuntu-20.04 nvidia-jetson-nano


    【解决方案1】:

    文档说:

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

    另一种方法是完全绕过窗口管理器并使用 Qt::X11BypassWindowManagerHint 标志创建一个窗口。但是,这还有其他严重的问题,例如完全损坏的键盘焦点以及对桌面更改或用户打开其他窗口时非常奇怪的影响。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多