Qt6以来,应该选Qt Widgets还是Qt Quick

Qt Widgets与Qt Quick的区别

Qt Widgets

  • 只允许使用C++或Python来进行开发
  • 默认情况下,在桌面平台上,具备原生应用的外观
    • 可以使用样式来修改外观
    • 移动应用不具备原生应用外观
  • 不依赖任何渲染引擎(OpenGL)
    • Qt有自己的渲染引擎
    • 可以Qt Widgets窗口内渲染其他引擎(OpenGL)的内容
  • 提供基础的UI组件
    • 不是很动态(fluid),但支持动画效果
  • 可以自定义UI组件的行为
    • 通过继承的方式或完全手写一个自己的组件

Qt Quick

  • 一般情况下使用QML开发情况
    • 有时需要C++/Python的辅助
  • 自Qt 6以来Qt Quick的组件也具备了原生应用的外观
    • 在Android平台下会使用主题信息
  • 依赖本地渲染引擎
    • Mac上使用的是本地Metal渲染引擎
    • 可以使用本地渲染引擎渲染自己的组件
  • 支持很流畅的动效(fluid)
    • 很容易实现复杂的动画效果
    • 很容易实现复杂的图形效果
  • 可以自定义组件的行为
    • 通过扩展或完全手写一个自己的组件

如何做出选择

Qt Widgets

  • 你仅仅想实现简单的UI效果
  • 你需要程序有更好的运行效率
  • 你不希望和QML、JavaScript打交道

Qt Quick

  • 你需要把应用程序部署在具备MCU芯片的设备上
  • 你需要把应用部署到移动端和嵌入式设备上
  • 你需要实现更复杂的界面效果
加一点私货
在Windows上使用Qt 5时,一个简单的QML应用程序消耗大约100MB的RAM,而使用Qt 6时则不到大约20MB。而且运行效率也高了不少,windeployqt之后,再用7z压缩,体积也就20多兆,以后有机会再写写QML编译运行引擎的一些文章。

原文:

【官方翻译】Qt6以来,应该选Qt Widgets还是Qt Quick - 知乎

猜你喜欢

转载自blog.csdn.net/weixin_45824067/article/details/130945492