QML性能优化

时间:2019-04-18
本文章向大家介绍QML性能优化,主要包括QML性能优化使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

可以参考官方提示https://doc.qt.io/qt-5/qtquick-performance.html

大牛翻译的https://blog.csdn.net/xqhrs232/article/details/76128633

1.图片

对于本地图片采用异步加载asynchronous设置为true(网络图片都是异步加载)
显式来源大小,如果应用程序加载大图像但是将其显示在一个小尺寸元素中,请将“sourceSize”属性设置为要渲染的元素的大小,以确保图像的较小比例版本保留在内存中,而不是大的。请注意,更改sourceSize将导致重新加载图像。

避免运行时组合,还要记住,通过在应用程序中提供预先组合的图像资源(例如,提供带阴影效果的元素),可以避免在运行时进行合成工作。

避免平滑图像,image.smooth仅在需要时启用。它在某些硬件上较慢,如果图像以其自然大小显示,则没有视觉效果。

绘画,避免多次涂抹同一区域。使用Item作为根元素而不是Rectangle以避免多次绘制背景。

2.配置

使用Qt Quick Compiler
  只需要再PRO文件中添加一行:CONIFG += qtquickcompiler

(不确定好用不好用)

3.事件

尽可能使用异步,事件驱动编程,不要使定时器轮询

4.View的设置

GridView 和 ListView 可以开启cacheBuffer 

5.ListModel添加大数据

ListModel提供append方法添加数据。可以采用一次添加多个数据。添加大数据也很快。

 

var tv = {name: "Apple2xxxxxxxxxxxxxxxxxxxxxxxxx","cost": 1.95}
var obj =[tv,tv,tv,tv,tv,tv,tv,tv,tv,tv];
for (var i = 0; i < 1000*100*10; ++i)
	listmodel.append(obj);
	
好于	listmodel.append(tv);