2018 Meet Qt-上海站(工业自动化专场)总结

前言

2018年11月13日下午, Qt公司在上海举办了工业自动化专题的线下研讨会, 本人有幸参加, 与Qt专家面对面交流,受益良多.

本次研讨会Qt公司主要介绍了以下几个部分:

  1. Qt公司介绍
  2. Qt在自动化行业的应用展示
  3. Qt公司的专业服务
  4. Qt产品的新特性
  5. Qt性能优化方案
  6. Toradex:嵌入式解决方案提供商展示

下面我将对个人关注的几个方面进行总结.

Qt产品新特性

  1. Qt Virtual Keyboard
    随着Qt版本的迭代,截止到Qt5.10,QT自带的虚拟键盘支持26国语言.
  2. Qt Charts 可以在后台设置为GPU渲染.
  3. Qt Quick中的pointer Handler 可以支持MouseArea透传.即使用pointer Handler不会出现两个Mouse Area 叠加时只能相应一个的问题.
  4. Qt Quick新增Shape元件.与Canvas兼容,但是使用GPU渲染,可以大幅提升程序的性能.
  5. Qt 3D. 支持碰撞检测,类似与一个小的游戏引擎

Qt性能优化方案

  1. 使用事件驱动
  • 避免定时器轮询
  • 使用信号槽的形式
  1. 使用多线程
  • 使用C++编写程序逻辑
  • 使用QML WorkerScript元件. 该元件会开一个独立线程来执行括号内的代码
  1. 避免使用CPU渲染的元件
  • Canvas , Qt Charts (新版本中可以使用QML Shape代替Canvas)
  1. 使用异步加载
  • 对大图片使用异步加载(有bool类型的选项开关)
  • 使用C++处理大数据加载
  1. 使用Qt Quick Compiler (since Qt5.11)
  • 只需在Pro文件中添加一行代码
  • CONFIG += qtquickcompiler
  1. 使用Qt Creator 的 profiling性能分析工具, 定位性能瓶颈

QT程序 Fast Boot

在汽车仪表盘等领域, 上电后需要快速的显示启动QT画面. 优化前大约需要30秒左右的时间, 使用Fast Boot技术,可以将QT启动时间缩短到2秒内. 实现该功能需要以下几个方面改进.

  1. uboot裁剪
  2. linux内核裁剪
  3. device tree 裁剪
  4. 使用静态链接
  5. Qt裁剪(使用QT Lite工具)
  6. 使用Qt Quick Compiler, 将QML源码编译成二进制文件.

基于WebGL的浏览器方案

Qt程序支持在服务端运行, 在浏览器中显示. 但是这需要两个条件:

使用QML语言开发
在交叉编译QT时需要选择WebGL插件(库)

因为QT会将页面渲染转换为OpenGL指令流,然后发送到浏览器中运行, 因此只有使用OpenGL渲染的代码(QML代码)才可以在浏览器中运行.

ps: 根据现场展示的demo, 发现对手机浏览器的支持并不好.

  1. 在服务端显示的内容和手机浏览器显示的存在差异(手机中显示不全),;
  2. 手机上的触摸事件不会传输到服务端中(在手机上拉动一个slider, 在服务端中没有进行变化), QT工程师解释说该demo只处理了mouseEvent, 而手机上产生的是touchEvent的原因.

总之需要实际测试一下才能知道

Gamma Ray 调试优化工具

Gamma Ray是KDAB公司的一款注入式Runtime调试优化程序.
支持QWidgets/ QML/ Qt3D/ Qt Automotive Suite.
动态监控: 网络, 资源树, UI, 信号槽, GPU负荷, 内存负荷等信息.
在这里插入图片描述

Qt公司的专业服务

QT公司的Senior Key 孙女士今天表示, QT公司可以单独提供收费的专业技术服务,即使你使用的是开源版.
服务包括: 性能优化服务, 培训服务, 程序框架适配服务,等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值