Qt -设计嵌入式设备用户界面的利器
相对于window桌面软件和移动终端炫酷的用户界面而言,小型嵌入式设备的用户界面还停留在石器时代,就好比一个开的是Tesla,另一个是福特机械老爷车。多数设备制造商为了使设备的HMI 好一点的话,一段时间大多数会选择window CE,或者简单粗暴地使用windows+Intel 主板,近年来也有人会选择一个android 的PAD来做 设备的HMI。哪怕这个界面仅仅只是几个按键,参数框和曲线罢了。大多数设备的HMI 要么丑陋无比,要么就是杀鸡用牛刀。况且在许多场合,嵌入式设备容不下一个android PAD。
最近集中看了一些Qt 的技术文档,并且做了一些小的测试程序。觉得Qt 是嵌入式系统编写HMI 的利器。许多芯片公司都推出了面向物联网和小型嵌入式设备的Cortex-A 系列单片机芯片。比如NXP i.MX 8,ST的stm32mp157c,Rockchip RK3288 等等。它们都是运行 linux OS。而在Linux 上开发用户界面,Qt将是不二选择。
关于Qt
Qt 最早是1991年由挪威的 Eirik Chambe-Eng 和 Haavard Nord 开发的, 他们随后于1994年3月4号正式成立奇趣科技公司(Trolltech)。Qt原本是商业授权的跨平台开发库, 在2000年奇趣科技公司为开源社区发布了遵循 GPL(GNU General Public License)许可证的开源版本。 在2008年,诺基亚公司收购了奇趣科技公司,并增加了 LGPL(GNU Lesser General Public License)的授权模式。 诺基亚联合英特尔利用 Qt 开发了全新的智能手机系统 MeeGo,可惜遭遇了微软木马屠城,诺基亚被迫放弃了 MeeGo, 而 Qt 商业授权业务也于2011年3月出售给了芬兰IT服务公司 Digia。当然好消息是 Digia 于2014年9月宣布成立 Qt Company 全资子公司,独立运营 Qt 商业授权业务。
Qt 包括什么
初次接触Qt 感觉内容包罗万象,有点丈二和尚摸不着头脑,其实简单地梳理一下,就明白了什么是Qt了。
-Qt Creator 是一个跨平台的,具有窗口UI 功能的C++ 开发环境IDE。如果你使用过以前的Delphi 或者 微软的 VS C#,那么我告诉你,Qt 和C#,Delphi 非常类似,是一种基于可视化控件的开发环境。可以在IDE 的窗口中拖动桌面控件,设置有关的参数。
- 除了使用可视化窗口设计界面以外,Qt 也可以使用页面描述语言来设计窗口UI,这种语言称之为 QML。它类似于json 格式,可以内嵌JavaScript 程序。
事实上,Qt 提供了两种UI 框架的选择:
- Qt Widget 应用开发模式
传统窗口程序使用 Qwedgit 方式的项目,使用可视化控件设计界面,通过槽函数(Slot)与C++ 链接,和C# 的机制非常类似。
-Qt Quick 应用开发模式
如果你希望设计出像手机界面那样的炫酷UI,可以使用Quick 应用开发模式,它使用QML 语言描述控件,是UI 设计更加灵活 ,自由。设计出来的UI可以和手机界面媲美。不过初学者可能觉得比QWedgit 模式麻烦一点,特别是C++和QML 的交互方面没有Wedgit 模式来的简单直接。一开始Qt Quick 支持的标准控件比较少,为了弥补这个缺陷,Qt 5.1 发布了 Qt Quick 的一个全新模块:Qt Quick Controls。顾名思义,这个模块提供了一些类似 Qt Widgets 模块那样可重用的组件。
Qt 是否有前途
和自然界的所有生物一样,每一项技术也有它的生命周期,也有不同的演进过程。其实我们学习的是技能,软件只是一个工具。工具会不断地变化,而技能会积累下来,并且帮助你学习更新的技术和工具,比如我最早使用的Delphi和C#的技能就非常有助于快速上手Qt。
随着硬件处理器的性能提高和价格下降,各种智能设备层出不穷,而且人们对设备的用户体验提出的越来越高的要求。相信会有更多的LCD 显示屏进入我们的工业和生活。事实上,现在许多的汽车仪表盘都是Qt 设计出来的。作为一项编写小型嵌入式设备UI 的技术,我相信是会受到欢迎的。当然人们更需要的是专业程序员,最好还具有某些行业背景知识。像我这样略懂皮毛的人,只能告诉你,这是一个好东西。
Qt -设计嵌入式设备用户界面的利器相关推荐
- 嵌入式设备的发展—应对复杂的开发设计挑战
在物联网出现之前,嵌入式设备的设计相对简单.随着智能手机的推出,我们的设备更加智能化.可升级并可通过互联网访问.安全不是可选的–如果不认真对待安全,数据.品牌声誉和收入流都将受到影响.此外,嵌入式系统 ...
- 通过QT与嵌入式arm-Linux设备联调
主机通过QT与嵌入式arm设备联调(rk3399) 1 环境 1.1 主机环境:ubuntu 20.0 安装了如下库和软件: 1)sudo apt-get update 2)sudo apt-get ...
- Qt 嵌入式设备应用程序,通过U盘升级的一种思路
最近在做一个通过U盘升级的功能,程序是运行在ARM Linux Qt平台上的.这个应该是很多嵌入式设备必备的一个功能了,所以把这部分的实现抽出来,做成一个例子供需要的人参考.这只是U盘升级的一种思路, ...
- Qt设计用户界面的三种方法
Qt设计界面有三种方式: (1)手工编写创建界面的代码:此方法比较复杂,不够直观: (2) 使用Qt Designer界面编辑器设计:可直接拖放控件.设置控件的属性,简单.直观.易于操作: (3)动态 ...
- 如何通过网络将文件传输到嵌入式设备_嵌入式系统 Boot Loader技术内幕,带你完全了解Boot Loader...
一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序.包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分.2. Linu ...
- 嵌入式编程入门教程,学习设计嵌入式工程师
俗话说万事开头难(然后中间难,最后难?),刚开始的时候,你是否根本就不知如何开始,上网查资料被一堆堆新名词搞的找不到北,去看书也是找不到方向?又是arm,又是linux,又是uboot头都大了.不知道 ...
- 嵌入式设备的容器化App
...
- QT: 基于QT和嵌入式的视频监控系统
[摘 要]为了降低视频监控系统的成本,提高系统布防的简易性,使其具有较好的稳定性和实时性,利用QT 设计了一款基于嵌入式视频服务器的监控系统.系统采用三星公司的S3C2440 微处理器芯片为核心的AR ...
- 嵌入式系统开发设计---嵌入式系统开发设计
嵌入式系统设计的主要任务是定义系统的功能.决定系统的架构,并将功能映射到系统实现架构上.这里,系统架构既包括软件系统架构也包括硬件系统架构.一种架构可以映射到各种不同的物理实现,每种实现表示不同的取舍 ...
最新文章
- angular-JS模仿Form表单提交
- (JAVA)CollectionDemo2
- Android实战经验之图像处理及特效处理的集锦
- matlab 下的集成学习工具箱
- saltstack的探索-salt指定目标和分组
- Shell学习之IF的使用
- 计算机术语多态意思,计算机外文翻译测试多态的关系的准则.doc
- 日期/时间控件DateTimePicker
- win10 平板 刷android,Android平板电脑刷Win8 ARM平台将支持Win10
- php 多图合成一张,多张图片拼成一张图,支持图片拼接功能,多种拼图模板的软件...
- Bytom储蓄分红合约解析
- 关闭 Eureka 自我保护模式
- 私厨菜谱app的设计与实现(三)
- Ubuntu 20下pycharm无法使用中文输入法
- linux scp 指令使用
- 统计微信好友性别,并可视化
- 外部PLC触发VisionMaster多流程运行
- 【dsPIC33E】Bootloader(三)Bootloader下位机
- C语言计算级数fun,c语言编程 编写函数fun(),它的功能是:计算和输出下列级数的和....
- HTML5 可视化音乐播放器(附源码)
热门文章
- Python爬虫入门教程 93-100 帮粉丝写Python爬虫之【获取CSDN周榜所有大佬的收费专栏】
- 【附源码】Python计算机毕业设计企业员工考勤管理系统
- 微信订阅号之政府认证
- Android Mars XLog的编译
- 解决图片旋转之后的位置问题
- 关于sp和unity近似的PBR的一篇国外文章
- Java高级特性 - 多线程练习题
- 迪杰斯特拉(dijkstra)-两个地铁站最短距离
- ros rviz显示rosbag中的图像和imu数据
- 下列哪个不是python的第三方库_以下选项中,不是 Python 中用于开发用户界面的第三方库是()...