在全屏模式下运行Qt应用程序时出现“黑屏”的问题

问题描述 投票:0回答:1

我们有一个基于Qt的浏览器应用程序,该应用程序在后台使用了QWebEninge。当前,我们正在解决一个问题,即每当窗口获取或释放焦点时(例如,每次调用QVirtualKeyboard时)屏幕都会变黑一段时间。在Qt's recommendation之后,我们尝试在调用QWindowsWindowFunctions::setHasBorderInFullScreen之前实现QMainWindow::showFullScreen()。但是,这导致可用窗口面积的减小,例如,减小了。 1918x1078而不是1920x1080(此修复程序将WS_BORDER添加到窗口标志中。)

[在一些实验中,如果发现问题也(并且仅)发生,如果我使用QMainWindow::show()并以与屏幕分辨率完全匹配的方式设置窗口的大小,则该问题也会发生。换句话说:超越屏幕范围不是问题。因此,我的想法是在QMainWinow周围放置一个WS_BORDER,并以某种方式设置大小/大小,以使可用区域覆盖屏幕。

我的问题是:

  • 是否有更好的解决方案来摆脱这个问题?
  • 如果不是,我如何获得“正常” WS_BORDERQMainWinodw?我尝试在调用Get/SetWindowLongPtr(QMainWindow::winId(), GWL_STYLE/GWL_EXSTYLE)之前和之后都使用QMainWinodw::show(),但这无济于事。
  • 提前感谢。

我们有一个基于Qt的浏览器应用程序,该应用程序在后台使用了QWebEninge。当前,我们正在解决一个问题,每次窗口打开或松开时屏幕都会暂时变黑...

windows qt fullscreen qwidget qtwebengine
1个回答
0
投票

作为一种解决方法,我尝试使用Qt :: WindowStaysOnTopHint放置一个隐藏的(不透明)迷你窗口(0x0px)-可行。如果有人知道更好的解决方案,请告诉我们。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.