我有一个无框架的QtWebEngine程序,当在没有任务栏的屏幕上运行并最大化窗口后,焦点发生变化时,该程序会闪烁。
它在带有任务栏的屏幕上正常工作。
以下是我的测试代码:
#include <QWidget>
#include <QHBoxLayout>
#include <QApplication>
#include <QWebEngineView>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget* widget = new QWidget(0);
widget->setWindowFlags(Qt::FramelessWindowHint);
QHBoxLayout* lay_parent = new QHBoxLayout;
QWebEngineView *webView = new QWebEngineView;
webView->load(QUrl("https://qt.io"));
widget->show();
lay_parent->addWidget(webView);
widget->setLayout(lay_parent);
widget->showMaximized();
return app.exec();
}
我尝试设置OpenGL
,它可以正常工作。
但是在某些计算机上,程序将无法运行。
QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
或
QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
有没有更好的方法来阻止它闪烁?
这是我的测试环境:
操作系统: Windows 7,Windows 10
Qt : 5.9.6,5.12.1