我想在非常慢的硬件上以全屏模式启动Qt Quick应用程序。这意味着您可以从字面上观看构建的UI。不好 我已经尝试过在窗口的OnCompletion中将visiblity = true设置为真,但这无济于事。
我想在每次加载和布局完成后很好地展示我的应用。
感谢您的帮助
答案 0 :(得分:2)
前段时间,有blog post写了关于优化Qt Quick应用程序的文章。这是该列表中的“要做”和“不做”的事情:
要做:
- 设计您的应用程序,使其从头开始快速启动。想想您希望用户首先看到的是什么。
- 制作启动动画以允许并行加载。
- 使用链式加载。仅运行与CPU中具有内核数量一样多的加载程序(例如,两个内核:两个加载程序同时运行)。
- 第一个加载程序不应是异步的。触发其余的装载机。
- 创建在需要时加载的QML插件。
- 仅在需要时连接到后端服务。
- 让QML插件启动非关键服务,并在不再需要时关闭那些服务。
- 优化您的png / jpg图片。
- 通过减少顶点数量并删除不可见的部分来优化3d模型。
- 使用glTF优化3D模型的加载。
- 使用Qt Quick Controls 2.0。这些是专为嵌入式使用而设计的,其创建时间比Quick Controls 1.0 for 嵌入式用例。
- 限制剪辑和不透明度的使用。
- 测量GPU限制,并在设计UI时将其考虑在内。
- 使用Qt快速编译器预编译QML文件。
- 调查架构是否可以进行静态链接。
- 力求声明式绑定而不是命令式信号处理程序。
- 保持属性绑定简单。通常,使QML代码保持简单,有趣和易读。表现良好。
- 在针对多个平台和外形尺寸时,请使用文件选择器,而不是加载程序和动态组件实例化。 不要害羞地“复制”简单的QML代码并使用文件选择器 加载定制版本。
不要:
- 对QML过于关注。即使您使用QML,也不需要绝对执行QML中的所有操作。
- 初始化main.cpp中的所有内容。
- 创建包含所有require接口的大型单例。
- 为Listview创建复杂的委托。
- 使用Qt Quick Controls 1.0进行嵌入式。
- 如果可能,应完全避免使用夹子。 (98%的用例应该是可能的。)
- 陷入过度使用装载机的常见陷阱。加载程序非常适合延迟加载较大的内容(例如应用程序页面),但也引入了 加载简单事物的开销很大。不是黑魔法 加快一切。这是一个额外的项目,另外一个 QML上下文。
- 过度使用。最大限度地重复使用代码通常会导致更多的绑定,更多的复杂性和更低的性能。
Qt文档中还有一个有关性能的页面: