我正在开发一个简单的QML
应用程序,我注意到,例如,调整窗口大小并移动QML
窗口会产生丑陋的闪烁。QML窗口大小调整/移动闪烁
因此,我创建2个测试应用程序以示区别:
QWidgets:
QML:
正如你可以见T他QML
版本的应用程序闪烁非常难看,而QtWidgets
一个是干净的。现在,当您的用户界面变得复杂时,这会变得非常难看。
您对此有任何了解吗?这是一个错误?是否有解决此问题的解决方法?
我正在开发一个简单的QML
应用程序,我注意到,例如,调整窗口大小并移动QML
窗口会产生丑陋的闪烁。QML窗口大小调整/移动闪烁
因此,我创建2个测试应用程序以示区别:
QWidgets:
QML:
正如你可以见T他QML
版本的应用程序闪烁非常难看,而QtWidgets
一个是干净的。现在,当您的用户界面变得复杂时,这会变得非常难看。
您对此有任何了解吗?这是一个错误?是否有解决此问题的解决方法?
你可以试试这个:
int main(int argc, char* argv[]) {
QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
or
QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
第一个选项使用OpenGl2DirecX角度库(如谷歌浏览器)
第二个由软件使用OpenGL模拟...对于小程序的工作非常好,与Windows XP等旧版操作系统完全兼容。
注意:您可以使用Qt 5.7和新Qtquick.Controls 2.0试试...进行更好的... https://blog.qt.io/blog/2016/06/10/qt-quick-controls-2-0-a-new-beginning/
尝试在我的Windows 7 PC上使用Qt 5.6.2和Intel Graphics 4000.使用Qt :: AA_UseOpenGLES表现更好!谢谢! – mrAlmond
就我而言,我通过添加下一个标志解决了这个:
QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);
但是这会增加其他渲染问题。或不。
您使用哪个视频卡? – Milovidov
@Milovidov我正在使用集成在Intel Core i5-3360M中的集成Intel HD Graphics 4000。 –
英特尔在OpenGL实现方面存在问题。尝试在没有OpenGL的情况下获取或编译qt。在这种情况下,Qt Quick将绘制为原生小部件,例如qt小部件解决方案。 – Milovidov