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 的技术,我相信是会受到欢迎的。当然人们更需要的是专业程序员,最好还具有某些行业背景知识。像我这样略懂皮毛的人,只能告诉你,这是一个好东西。

猜你喜欢

转载自blog.csdn.net/yaojiawan/article/details/88294636