创建组件后很好地显示 Qml-Window
Posted
技术标签:
【中文标题】创建组件后很好地显示 Qml-Window【英文标题】:Show Qml-Window nicely after components are created 【发布时间】:2018-08-10 05:46:20 【问题描述】:我想在非常慢的硬件上以全屏模式启动我的 Qt Quick 应用程序。这意味着您可以从字面上观察 UI 的构建过程。那不好。 我已经尝试在我的窗口的 OnCompletion 中设置 visiblity=true 但它没有帮助。
我想在每次加载和布局都完成后很好地展示我的应用程序。
感谢您的帮助
【问题讨论】:
doc.qt.io/qt-5/qml-qtquick-loader.html 【参考方案1】:不久前有一篇关于优化 Qt Quick 应用程序的blog post。以下是该列表中的注意事项:
做:
设计您的应用程序以从一开始就快速启动。想想您希望用户首先看到的是什么。 制作启动动画以允许并行加载。 使用链式加载。只运行与 CPU 中的内核数量一样多的加载器(例如,两个内核:两个加载器同时运行)。 第一个加载程序不应该是异步的。触发其余的加载器。 创建需要时加载的 QML 插件。 仅在需要时才连接到后端服务。 让 QML 插件启动非关键服务并在不再需要时关闭这些服务。 优化您的 png / jpg 图像。 通过减少顶点数量和移除不可见的部分来优化您的 3d 模型。 使用 glTF 优化 3D 模型加载。 使用 Qt Quick Controls 2.0。这些是为嵌入式使用而设计的,创建时间比 Quick Controls 1.0 中的要好得多 嵌入式用例。 限制剪辑和不透明度的使用。 衡量 GPU 限制并在设计 UI 时考虑这些限制。 使用 Qt Quick Compiler 预编译 QML 文件。 调查您的架构是否可以使用静态链接。 争取声明式绑定而不是命令式信号处理程序。 保持属性绑定简单。一般来说,保持 QML 代码简单、有趣和可读。良好的表现随之而来。 针对多个平台和外形尺寸时,使用文件选择器而不是加载器和动态组件实例化。 不要羞于“复制”简单的 QML 代码并使用文件选择器 加载定制版本。不要:
过度使用 QML。即使您使用 QML,也无需在 QML 中完成所有操作。 初始化 main.cpp 中的所有内容。 创建包含所有必需接口的大单例。 为 Listview 创建复杂的委托。 使用 Qt Quick Controls 1.0 进行嵌入式。 如果可能,应完全避免剪辑。 (在 98% 的用例中,这应该是可能的)。 陷入过度使用加载程序的常见陷阱。加载器非常适合延迟加载应用程序页面等较大的东西,但也引入了 加载简单事物的开销很大。这不是黑魔法 加速一切。这是一个额外的项目 QML 上下文。 过度重复使用。最大限度地重复使用代码通常会导致更多的绑定、更高的复杂性和更低的性能。
Qt 文档中还有一个关于性能的页面:
Performance Considerations And Suggestions
【讨论】:
以上是关于创建组件后很好地显示 Qml-Window的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Bloc:在创建的上下文中没有我的 bloc 的祖先,而我很好地为其提供了 BlocProvider.value
Plotly 不能很好地处理条形图的 NA。我该在哪里解决这个问题?