У нас есть браузерное приложение на основе Qt, которое использует QWebEninge под капотом. В настоящее время мы боремся с проблемой, когда экран на мгновение гаснет каждый раз, когда окно получает или теряет фокус (например, каждый раз, когда вызывается QVirtualKeyboard). Следуя рекомендации Qt , мы попытались реализовать QWindowsWindowFunctions::setHasBorderInFullScreen
до вызова QMainWindow::showFullScreen()
. Но это приводит к недопустимому уменьшению доступной области окна, например, 1918x1078 вместо 1920x1080 (это исправление добавляет WS_BORDER к флажкам окна).
Во время некоторых экспериментов, если выясняется, что проблема также - и только - возникает , если я использую QMainWindow::show()
при настройке размера окна таким образом, чтобы он точно соответствовал разрешению экрана. Другими словами: выход за пределы экрана не проблема. Поэтому моя идея заключалась в том, чтобы получить такое WS_BORDER
вокруг моего QMainWinow и изменить его размер / разместить таким образом, чтобы доступная область охватывала экран.
Мои вопросы:
- Есть ли лучшее решение, чтобы избавиться от этого?
- Если нет: как я могу получить
WS_BORDER
для "нормального" QMainWinodw
? Я пытался использовать Get/SetWindowLongPtr(QMainWindow::winId(), GWL_STYLE/GWL_EXSTYLE)
как до, так и после вызова QMainWinodw::show()
, но это не помогло.
Заранее спасибо.