qt表单全屏有时会覆盖ubuntu顶部窗格,有时不会

时间:2017-03-19 21:33:29

标签: c++ qt ubuntu

我正在编写一个将Mplayer嵌入Ubuntu统一的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中的一个错误?

亲切的问候, 巴特。

1 个答案:

答案 0 :(得分:0)

这听起来像是窗口管理器的一个问题,它让Qt难以解决。 Qt只在窗口上设置相应的WM提示,并希望窗口管理器做正确的事情。

对于您的应用程序,我建议您安装一个轻量级的窗口管理器,如Openbox或Fluxbox,它们更有可能不受影响。安装完成后,您可以在登录界面中选择它。