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 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值