我正在为Ubuntu Linux使用Qt和QML构建应用程序的UI。我有一个带有canvas元素的查看器窗口,默认情况下它应该是全屏的。在打开应用程序时,这工作正常(即隐藏Ubuntu侧边栏和顶部任务栏)。但是,一旦我最小化我的应用程序然后使用viewer->setFullScreen();
再次最大化它,Ubuntu侧边栏和顶部任务栏仍然可见,并且由于相同的原因在画布上写入时存在偏移量。
任何帮助将不胜感激。
答案 0 :(得分:1)
根据this topic on askubuntu,您的问题确实看起来像Unity bug(或功能)。但是,根据Launchpad上的某种相关错误,您似乎可以通过以下方式获得所需的行为:
在全屏显示之前,右键单击窗口的标题栏,打开“Always On Top”。 当使用其他屏幕时,这将阻止Unity面板在此全屏窗口上呈现。
在Qt中,您可以通过QWidget::windowFlags
将Qt::WindowStaysOnTopHint
设置为您的窗口/小部件。
另外注意官方文档中的注释:
setParent()
,导致窗口小部件被隐藏。您必须致电show()
以再次显示小部件。Qt::WindowStaysOnTopHint
- 通知窗口系统窗口应该保持在所有其他窗口之上。请注意,在X11上的某些窗口管理器上,您还必须通过Qt::X11BypassWindowManagerHint
才能使此标志正常工作。希望这有帮助。