Qt全球峰会2023中国站 参会概要

Qt全球峰会2023中国站 参会概要

  • 前言
  • 峰会议程
    • 签到 & Demo 演示
    • 开场致辞
    • Qt Group 产品总监演讲(产品开发的趋势-开放的软件、工具和框架)
        • 产品战略
        • QtQuick or QtWidgets(c++ or qml)
        • Qt如何定义AI
        • 个人看法
    • Qt 在券商数字化转型和信创改造中的创新实践
    • Qt产品路线图
        • 关于Qt版本
    • Qt 赋能STM32 MPU 人机界面应用 - 助力用户构建强大高效的 GUI
  • 下午场是分论坛进行,我反复切换,只选择了感兴趣的
    • 非零和博弈的 HMI 开发流程
        • 何为产品经理
        • 零和博弈(具体到汽车行业)
    • 银河麒麟 Qt 框架源码级桌面实践分享
        • Qt 的看护难度(不是很理解该用词)
        • 与 Qt 商业版本合作的原因
        • 疑难问题修复
        • Qt 工作构想
    • 使用静态代码分析工具提升软件质量(手机拍照,将就着看)
    • Qt + OneOS 提升客户 HMI 产品开发体验
    • Qt Wayland 最新进展
    • 如何在新的硬件平台上运行 Qt for MCUs
        • 为什么要在 MCU 上使用 Qt ?
        • 官方现已适配超过35款MCU(拍的实在糟糕,但这些都是公开的资料)
  • 纪念品照片
  • 个人对 Qt 的看法

前言

在今年三月份的某一天,意外的发现,我所关注的公众号“Qt软件”,头像由原本清新的绿色变为了厚重的黑色
在这里插入图片描述 在这里插入图片描述习惯了清新绿的我有些奇怪,正好 Qt 在我常使用的 B站 有运营着活跃的官方账号,于是尝试在该账号的视频下留言“logo由绿变黑是有什么寓意吗?”,得到了如下回复:
在这里插入图片描述
再进入Qt官网查看,发现已由 Qt Company 变为了 Qt Group,惊觉自己对 Qt 的认知还停留在从前,于是在九月下旬得到Qt全球峰会中国站在上海召开的消息推送时,第一时间报名,最终审核成功,有幸参与了 Qt全球峰会2023中国站,本人并不是一位资深的软件工程师,今天只是站在一个普通开发者的角度,记录此次会议的概要,发表下个人愚见。

峰会议程

此次峰会,上午场为全体大会,下午场以分论坛方式举行,分为 嵌入式开发桌面/移动端开发 两个专场
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

签到 & Demo 演示

峰会地址是上海万豪虹桥大酒店,会场还是很好找的,签到完成,获得吊牌,再送几本宣传册

在这里插入图片描述

开场致辞

Qt Group亚太区副总裁致辞,全英文无翻译…

Qt Group 产品总监演讲(产品开发的趋势-开放的软件、工具和框架)

产品战略
  • 总体而言,Qt的产品战略为:公开的工具、开放的框架,专注于优化产品开发流程;
  • 软件开发方面,使其他部门无缝衔接入产品的开发流程中,QA工具为产品的质量做了保证;
  • 相信开放工具战略,积极拥抱第三方(如 Qt 6 拥抱 cmake)
  • QtCreator 的目标是稳定的API,开放插件生态,集成更多有趣的功能
  • 开放的框架战略,并不是要兼并所有,而是包容的思想(如在已有的软件基础上,使用Qt进行组合)
QtQuick or QtWidgets(c++ or qml)

这真是个老话题了,我已经不想多讨论,直接粗暴的使用一个经典言论:你的软件使用鼠标比较多就选择widgets,触屏操作多就选择quick;这句话适用于大部分场景。

Qt如何定义AI

生成式的AI并不能确保质量,生成越多,测试工作就越多(由此引出了Qt 的 COCO7工具),
AI是增强性的功能,而不是主导性的功能。

个人看法

在很多开发者的认知中,Qt 只是一个开发框架,一些新的用户甚至可以说出“Qt是一个UI库”这样的言论;在我看来,按照 Qt 目前的布局,它将是一个全套的解决方案。

Qt 在券商数字化转型和信创改造中的创新实践

由国泰君安的一位员工(title就不提了)分享Qt在金融证券行业的案例,该行业中的投资者对软件响应速度有一定要求,以及大量用户使用MacOS、Linux、国产操作系统(跨平台需求)

  • 国泰君安2002年推出全行业首家全自研网上交易终端(基于Delphi)
  • 2015年8月:行业首发一户通账户体系的融合金融终端
  • 2018年3月:启动新框架调研
  • 2018年8月:完成PC端技术栈的调研,选择Qt作为国泰君安新一代PC端主要开发框架
  • 2019年12月:完成整体基于Qt框架的MAC版富易(国泰君安网上交易专用系统)
  • 2021年7月:得益于选择的Qt框架满足信创要求,实现全行业首发上线支持国产系统版本富易
  • 2022年8月:基于Qt自研框架
  • 2023年12月:全面部署切换,日均在线用户16万,日调用量1亿+

这是一个成功的案例,该公司无疑是开拓、进取且勇敢的。

Qt产品路线图

获悉Qt目前已有4800+万行代码,这个代码量并不是只有Qt framework,包含了COCO单元测试工具、Squish UI自动化测试、Test center 平台等;详细的内容我建议直接去 Qt Group 看
在这里插入图片描述

关于Qt版本
  • 当前的时间节点,Qt最近的长期支持版本是6.5
  • 目前用户量最多的版本是Qt5.15,由于用户量庞大,原定的LTS版本支持三年的计划也延长了两年
  • Qt6.6版本增加了很多特性
    • 用于权限管理的QML API
    • 优化对 Android 的支持
    • Style 的改进和优化
    • Qt for web 的优化
    • 正在进行 c++ 20 的初步支持(这是令人激动的)
    • 未来考虑全面支持c++ 20
    • 异步I/O
    • 等等等等…
  • 下一个LTS版本将是Qt6.8,预计于2025年发布

Qt 赋能STM32 MPU 人机界面应用 - 助力用户构建强大高效的 GUI

意法半导体和Qt深度合作,高性价比图像解决方案


下午场是分论坛进行,我反复切换,只选择了感兴趣的


非零和博弈的 HMI 开发流程

抱歉,我没有太多产品思维,也没有汽车行业的经验,纯粹牛嚼牡丹在这里插入图片描述在这里插入图片描述
在这里插入图片描述

根据我拍下的照片,抄录下一些概念:

何为产品经理

产品经理是负责监督产品或一系列产品在其生命周期中的开发和管理的专业人士;他们在定义产品策略、设定优先事项,并指导产品开发过程中起着至关重要的作用。

零和博弈(具体到汽车行业)
  • 在工作流程中,总有一方会在一个周期内赢得主导权,然后突然出现某个观点,然后下一次就轮到另一方接管
  • 在设计和开发开始整合时,我们听到了很多抱怨,整个迭代过程中充满了摩擦
  • 当他们开始考虑将其复用并扩展到其它车型时,整个代码库得支持变的难以为继,甚至难如登天,最终导致了延迟,最初高利润的计划变成了一场白日梦

银河麒麟 Qt 框架源码级桌面实践分享

银河麒麟桌面操作系统中,Qt 起到承上启下的作用,系统层次从上往下依次是:

  • 业务应用:图形化应用程序
  • 桌面环境:任务栏、文件资源管理器等
  • 应用运行时:Qt
  • 基础库环境:Glibc、FFmpeg、openssl、bluez、DBus、alsa…
  • 硬件环境
Qt 的看护难度(不是很理解该用词)

以某版本为例,统计了 Qt 开发模块数、API数量、目前社区未解决bug数量(两千多个,数据似乎很惊人),同时要求了工程指标;

与 Qt 商业版本合作的原因
  • 产品质量得到保证
  • 促进生态
  • 从 Qt Group 可获得高质量的技术支持服务
  • 通过培训以及共同排查问题的过程,提高研发实力

任何选择,你最好都有你的理由。

疑难问题修复

麒麟系统级开发,遇到的问题不常见,太细节了,在此就不放了,只说一个常见的:Qt 版本升级引发的兼容性问题。麒麟遇到这个问题的原因是由于Qt public API 的兼容性保证,升级前过于乐观,升级后出现大量问题,原因是 private API 兼容性欠佳;(一些邪恶的软件工程师喜欢用Qt private 模块,hhhhh,狠狠的敲打)

Qt 工作构想
  • 构建多平台一致的 Qt 使用方法,提高生态适配效率
  • 为 Qt 应用开发各环节赋能,提高产品质量

很好的愿景,第一条的解读:如 windows 系统上 Qt 开发,直接下载 Qt 提供的预编译包即可,即使安装多个版本也无妨,而在 Linux 下情况是不同的,不熟悉 Linux 环境的开发者,会浪费一些时间在这上面(更遑论Linux发行版错综复杂),徒增心智负担。

使用静态代码分析工具提升软件质量(手机拍照,将就着看)

软件开发过程中,如果没有采取积极的措施,软件的复杂性/功能性将越来越快地增长,称之为“软件侵蚀”,我们需要阻止它
在这里插入图片描述

重构:功能性不变,从工程角度提升技术架构和质量;持续的重构,可改善软件侵蚀
在这里插入图片描述
在实践中,这是难以实现的,预算、时间、风险都是企业无法接受的,最终很难改善问题
在这里插入图片描述

  • 重构是个很好的办法,只是作为集中式的任务来说有点困难
  • 把它分散到更小的迭代中
  • 预算、时间、风险虽然仍存在,但可以通过日常任务的方式来处理,类似敏捷开发方法
  • 使用 Axivion 进行 CI(持续集成)中的静态代码分析(图穷匕见)
    在这里插入图片描述

Qt + OneOS 提升客户 HMI 产品开发体验

OneOS 自上至下抽象为:

  • 应用场景
  • 组件层
  • 框架层
  • 内核层
  • BSP/Driver
  • 硬件层
    OneOS 框架层选择了 Qt for MCUs 作为开发框架,以下直接展示产品:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Qt Wayland 最新进展

  • linux 桌面正在迁移到 Wayland
  • gnome 推动 Wayland
  • KDE 6.0 全面支持 Wayland(将于今年开发完毕,KDE 加油!)

齐亮大佬云淡风轻的从 X-Server 为引,围绕 Compositor 讲解 QtWayland,让我汗流浃背(差距太大了)

如何在新的硬件平台上运行 Qt for MCUs

以下直接摘自演讲者PPT,本人对 MCU 并不太了解,侵删

为什么要在 MCU 上使用 Qt ?
  • 使用 MCU 的优势
    • 便宜:通常比 MPU 价格更低
    • 快速:启动时间大大缩短
    • 可靠:复杂度更低,更容易保证健壮性
    • 高效:更容易快速实现大规模生产
  • 原生 API 开发的劣势
    • 开发效率低:缺乏抽象层,很难开始开发,验证调试复杂
    • 厂商绑定:每家都有各自的 API 和配置,纯体力劳动
  • 使用 Qt 解决了哪些问题
    • 简单:Design Studio 和 QML 适用于设计师和 TA
    • 可扩展性:应用很容易在不同供应商的 MCU 和板卡之间迁移
    • 支持:完善的文档和众多示例以及本地化支持
官方现已适配超过35款MCU(拍的实在糟糕,但这些都是公开的资料)

在这里插入图片描述

  • 在 MCU 上使用 Qt 非常简单,而且不会被锁定在某个 MCU 供应商或特定板卡上
  • 你可以在一个官方支持的平台上试用,然后根据自己选择的 MCU 进行定制
  • 移植的步骤都有详细记录,你可以按照步骤进行

纪念品照片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

个人对 Qt 的看法

  • 使用 Qt 的时间也不短了,算是一个 Qter,犹记得第一次使用 Qt show 出一个窗口时激动的心情;我很愿意相信,Qt 为 c++ 焕发了活力,c/c++ 的学习是枯燥的,很多人学习 c++ 时都是对着冰冷的终端,无情的打印字符,做不出任何东西,得不到正反馈,很难不让人自我怀疑。
  • Qt 简化了 c++ 的使用,见到很多初学 Qt 的学生或是跨行业选手,在连 c++ 基本语法(基本语法不作具体定义,大家伙别太魔怔)都认不全的情况下,使用 Qt 做出了简单的项目,且能够不出巨大的纰漏,颇有 “旧时王谢堂前燕,飞入寻常百姓家” 的意味;我本人也比较感激 Qt,它让我平滑的学习了 c++。
  • 而今,Qt Group 有了更远大的目标,一方面,Qt 公司较小的体量,维持着庞大的产品线,令人担忧;另一方面,似乎很多优秀的作品都是由小而美的团队完成,太多人的意见也会让事情变坏;这很难评价。
  • Qt 的多重授权、发律师函、以及嵌入式上 LGPLv3 协议的不明确解读颇受诟病,期望未来能够有更好的商业化策略。
  • 不管怎样,希望它越来越好。

最后,让我们一起读出 “Qt”(同 cute 读音)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/179006.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

风电场叶片运输车模型-FBX格式-带动画-数字孪生场景搭建

FBX格式的风电场中叶片运输车辆模型,按照真实尺寸建模,车辆多个部位带动画效果,适用于风电场三维数字化场景和风电场数字孪生使用,也可以用来作为各种三维平台的测试模型。 模型效果图 下载地址 叶片运输车模型下载地址

专访|OpenTiny 开源社区 常浩:完成比完美更重要

前言 2023年已过大半,备受关注的 OpenTiny*开源之夏活动也顺利结项。开源之夏由中国科学院软件研究所发起的计划,目的在于鼓励在校学生积极参与开源软件的开发维护,推动优秀开源软件社区的繁荣发展。该活动联合各大开源社区,聚焦…

逸学java【初级菜鸟篇】9.4 泛型

hi,我是逸尘,一起学java吧 泛型概述 泛型是我们在定义某一个类型规格的时候使用的泛指,我们预先定义一个大方向,防止路线错误。 实质上是程序员定义的安全类型,Object是顶级父类,在没有泛型很多程序员为了…

Android 10.0 mtp模式下连接PC后只显示指定文件夹功能实现

1. 前言 在android10.0的系统定制化开发中,对于usb作为otg连接电脑时,在mtp模式下会作为一个存储器在电脑端显示,作为电脑的 一个盘符,来显示设备的内部存储的文件,所以说如果要对设备内部的资料做保密处理的时候,需要在mtp模式下不显示某些 文件夹,接下来就分析下相关…

【C语言】qsort函数

目录 简介 头文件 ​编辑 函数原型: 参数函数如何写: 参数函数要求: qsort对整性数据的排序: qsort对字符型数据的排序: 对结构体类型的内部元素排序: 函数的底层是以快速排序实现的 但是本文不深入…

office word 使用笔记

office word 使用笔记 1. 功能1.1 格式快捷键1.2 复选框 2 遇到过的问题2.1 表格标题和表格距离过大 1. 功能 1.1 格式快捷键 复制格式:ctrl shift c 粘贴格式:ctrl shift v 1.2 复选框 方框位置和类型:“插入——高级符号——字体”选…

鸿蒙4.0开发笔记之ArkTs语言基础与基本组件结构(四)

文章声明&#xff1a;本文关于HarmonyOS系统的部分内容和描述借鉴于华为官网的“HarmonyOS开发者学堂”&#xff0c;有需要的也可以进入官网查看。<HarmonyOS第一课>ArkTS开发语言介绍 一、ArkTs语言介绍 ArkTS是鸿蒙系统&#xff08;HarmonyOS&#xff09;优选的主力应…

如何访问linux上的web服务

1.获取服务运行端口 例如8080 2.如果时vmware 需要先配置转发端口和主机ip 主机ip需要未使用的 例如&#xff1a; 3.查看虚拟机防火墙设置 centos8 为例 &#xff1a; firewall-cmd --zonepublic --list-ports 查看放通端口 如果没有放通 firewall-cmd --zonepublic --add-p…

0基础学习VR全景平台篇第122篇:VR视频剪辑和输出 - PR软件教程

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 开始之前如果没有接触过pr这款软件的话&#xff0c;建议先去看上一篇 认识视频剪辑软件Premiere 大致了解一下pr。 回到正题今天来教大家VR视频的剪辑和输出 我们先双击打开…

Mac自带的看图如何连续查看多张图片

一、问题 mac看访达里的图片时&#xff0c;双击打开一张图片&#xff0c;然后按上下左右键都没法切换到另外的图片。而且也没找到像window一样单击缩略图可以看到预览图。其实是自己不懂得怎么使用&#xff0c;哈哈哈&#x1f602; 二、方法 2.1、图标方式 可以看到缩略图&a…

老生常谈之 JavaScript 中 0.1 + 0.2 != 0.3 的原因

先来一个模棱两可的说法&#xff1a;因为精度丢失、存储溢出的问题 先复习一下二进制的转换方法&#xff1a; 整数&#xff1a;除以基数&#xff0c;取余&#xff0c;自底向上小数&#xff1a;乘以基数&#xff0c;取整&#xff0c;自顶向下 接着&#xff0c;复习一下双精度…

Linux进程通信——共享内存

概念 共享内存&#xff08;Shared Memory&#xff09;&#xff0c;指两个或多个进程共享一个给定的存储区。 特点 共享内存是最快的一种 IPC&#xff0c;因为进程是直接对内存进行存取。 因为多个进程可以同时操作&#xff0c;所以需要进行同步。 信号量共享内存通常结合在一…

排序算法--归并排序

实现逻辑 ① 将序列每相邻两个数字进行归并操作&#xff0c;形成floor(n/2)个序列&#xff0c;排序后每个序列包含两个元素 ② 将上述序列再次归并&#xff0c;形成floor(n/4)个序列&#xff0c;每个序列包含四个元素 ③ 重复步骤②&#xff0c;直到所有元素排序完毕 void pri…

透视未来:现代发电厂地区可视化与智慧能源的结合

随着全球能源消费的不断增长&#xff0c;电力需求也在不断上升。作为能源行业的重要组成部分&#xff0c;现代发电厂扮演着不可替代的角色。而现代发电厂的数据管理和监控系统&#xff0c;则是确保其安全、高效、稳定运行的重要手段。在这个背景下&#xff0c;现代发电厂地区可…

全局定制序列化

作用:将返回实体类中的属性如果为null 变成"" package com.example.micrweb.config;import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.f…

windows搭建gitlab教程

1.安装gitlab 说明&#xff1a;由于公司都是windows服务器&#xff0c;这里安装以windows为例&#xff0c;先安装一个虚拟机&#xff0c;然后安装一个docker&#xff08;前提条件&#xff09; 1.1搜索镜像 docker search gitlab #搜索所有的docker search gitlab-ce-zh #搜索…

LabVIEW中将SMU信号连接到PXI背板触发线

LabVIEW中将SMU信号连接到PXI背板触发线 本文介绍如何将信号从PXI&#xff08;e&#xff09;SMU卡路由到PXI&#xff08;e&#xff09;机箱上的背板触发线。该过程涉及使用NI-DCPowerVI将SMU信号导出到PXI_TRIG线上。 在继续操作之前&#xff0c;请确保在开发PC上安装了兼容版…

安防视频EasyCVR平台太阳能供电+4G摄像头视频监控方案的建设

在工地、光伏、风电站、水库河道等场景中&#xff0c;以及一些偏远地区的项目现场&#xff0c;会存在无网无电情况&#xff0c;大大制约了视频监控系统建设的效率及可行性。在这种场景中&#xff0c;我们也可以通过太阳能供电4G监控摄像机的方案&#xff0c;满足偏远地区无网无…

VUE语法-$refs和ref属性的使用

1、$refs和ref属性的使用 1、$refs:一个包含 DOM 元素和组件实例的对象&#xff0c;通过模板引用注册。 2、ref实际上获取元素的DOM节点 3、如果需要在Vue中操作DOM我们可以通过ref和$refs这两个来实现 总结:$refs可以获取被ref属性修饰的元素的相关信息。 1.1、$refs和re…

IT 领域中的主要自动化趋势

48%的IT自动化流程属于IT服务管理&#xff0c;过去一年中&#xff0c;IT运维自动化增长了272%。 IT部门从交付者转变为战略伙伴 今年的《工作自动化指数》数据显示&#xff0c;自动化正在蔓延到组织的各个部门&#xff0c;越来越多的部门采用自动化&#xff0c;并且IT以外的员工…