【问题标题】:qt form fullscreen sometimes goes over the ubuntu top pane and sometimes notqt form fullscreen 有时会越过 ubuntu 顶部窗格,有时不会
【发布时间】:2017-08-11 01:54:34
【问题描述】:

我正在编写一个在 Ubuntu unity 上嵌入 Mplayer 的 QT 应用程序。我想在舞蹈表演的投影仪上投影视频。因此,我创建了第二个表单,将其移至第二个屏幕并使其全屏显示。 这是我的做法:

void MainWindow::on_testdialog()
{
    QScreen *secondscreen = QApplication::screens()[1];  
    outputform->move(secondscreen->geometry().x(),secondscreen->geometry().y());
    outputform->resize(secondscreen->geometry().width(),secondscreen->geometry().height());
    outputform->setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
    outputform->setWindowState(Qt::WindowFullScreen);
    outputform->show();
}

然后我将 Mplayer 输出重定向到这个表单。 这可行,但有时第二种形式是真正的全屏形式,位于 Ubuntu 统一菜单窗格(顶部的那个)的顶部,有时 Ubuntu 统一菜单窗格位于顶部。 在我看来,这是随机的。 我希望我的表单始终位于顶部,因为我不希望菜单窗格出现在舞台上。 有没有办法做到这一点? 这是有原因的,无缝的,随机的行为吗?也许是 Ubuntu 中的错误?

亲切的问候, 巴特。

【问题讨论】:

    标签: c++ qt ubuntu


    【解决方案1】:

    这听起来像是窗口管理器的问题,Qt 无法解决。 Qt只是在窗口上设置了相应的WM提示,希望窗口管理器做对的事情。

    对于您的应用程序,我建议您安装一个轻量级的窗口管理器,例如 Openbox 或 Fluxbox,它们更有可能不碍事。安装后,您可以在登录屏幕中选择它。

    【讨论】:

    • 我试过 Fluxbox,但它对我来说有点太轻量级了。我找不到我的其他应用程序。然后我安装了gnome。这对我有用。第二个屏幕上没有菜单窗格,我仍然可以找到并使用我的常规应用程序。谢谢。
    • @BartVanDamme 当您找到有用的答案/解决您的问题时,您应该accept it
    猜你喜欢
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多