相对于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 -设计嵌入式设备用户界面的利器相关推荐

  1. 嵌入式设备的发展—应对复杂的开发设计挑战

    在物联网出现之前,嵌入式设备的设计相对简单.随着智能手机的推出,我们的设备更加智能化.可升级并可通过互联网访问.安全不是可选的–如果不认真对待安全,数据.品牌声誉和收入流都将受到影响.此外,嵌入式系统 ...

  2. 通过QT与嵌入式arm-Linux设备联调

    主机通过QT与嵌入式arm设备联调(rk3399) 1 环境 1.1 主机环境:ubuntu 20.0 安装了如下库和软件: 1)sudo apt-get update 2)sudo apt-get ...

  3. Qt 嵌入式设备应用程序,通过U盘升级的一种思路

    最近在做一个通过U盘升级的功能,程序是运行在ARM Linux Qt平台上的.这个应该是很多嵌入式设备必备的一个功能了,所以把这部分的实现抽出来,做成一个例子供需要的人参考.这只是U盘升级的一种思路, ...

  4. Qt设计用户界面的三种方法

    Qt设计界面有三种方式: (1)手工编写创建界面的代码:此方法比较复杂,不够直观: (2) 使用Qt Designer界面编辑器设计:可直接拖放控件.设置控件的属性,简单.直观.易于操作: (3)动态 ...

  5. 如何通过网络将文件传输到嵌入式设备_嵌入式系统 Boot Loader技术内幕,带你完全了解Boot Loader...

    一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序.包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分.2. Linu ...

  6. 嵌入式编程入门教程,学习设计嵌入式工程师

    俗话说万事开头难(然后中间难,最后难?),刚开始的时候,你是否根本就不知如何开始,上网查资料被一堆堆新名词搞的找不到北,去看书也是找不到方向?又是arm,又是linux,又是uboot头都大了.不知道 ...

  7. 嵌入式设备的容器化App

                                                                                                        ...

  8. QT: 基于QT和嵌入式的视频监控系统

    [摘 要]为了降低视频监控系统的成本,提高系统布防的简易性,使其具有较好的稳定性和实时性,利用QT 设计了一款基于嵌入式视频服务器的监控系统.系统采用三星公司的S3C2440 微处理器芯片为核心的AR ...

  9. 嵌入式系统开发设计---嵌入式系统开发设计

    嵌入式系统设计的主要任务是定义系统的功能.决定系统的架构,并将功能映射到系统实现架构上.这里,系统架构既包括软件系统架构也包括硬件系统架构.一种架构可以映射到各种不同的物理实现,每种实现表示不同的取舍 ...

最新文章

  1. angular-JS模仿Form表单提交
  2. (JAVA)CollectionDemo2
  3. Android实战经验之图像处理及特效处理的集锦
  4. matlab 下的集成学习工具箱
  5. saltstack的探索-salt指定目标和分组
  6. Shell学习之IF的使用
  7. 计算机术语多态意思,计算机外文翻译测试多态的关系的准则.doc
  8. 日期/时间控件DateTimePicker
  9. win10 平板 刷android,Android平板电脑刷Win8 ARM平台将支持Win10
  10. php 多图合成一张,多张图片拼成一张图,支持图片拼接功能,多种拼图模板的软件...
  11. Bytom储蓄分红合约解析
  12. 关闭 Eureka 自我保护模式
  13. 私厨菜谱app的设计与实现(三)
  14. Ubuntu 20下pycharm无法使用中文输入法
  15. linux scp 指令使用
  16. 统计微信好友性别,并可视化
  17. 外部PLC触发VisionMaster多流程运行
  18. 【dsPIC33E】Bootloader(三)Bootloader下位机
  19. C语言计算级数fun,c语言编程 编写函数fun(),它的功能是:计算和输出下列级数的和....
  20. HTML5 可视化音乐播放器(附源码)

热门文章

  1. Python爬虫入门教程 93-100 帮粉丝写Python爬虫之【获取CSDN周榜所有大佬的收费专栏】
  2. 【附源码】Python计算机毕业设计企业员工考勤管理系统
  3. 微信订阅号之政府认证
  4. Android Mars XLog的编译
  5. 解决图片旋转之后的位置问题
  6. 关于sp和unity近似的PBR的一篇国外文章
  7. Java高级特性 - 多线程练习题
  8. 迪杰斯特拉(dijkstra)-两个地铁站最短距离
  9. ros rviz显示rosbag中的图像和imu数据
  10. 下列哪个不是python的第三方库_以下选项中,不是 Python 中用于开发用户界面的第三方库是()...