paint-brush
用于嵌入式开发的 Qt:许多优点和一些缺点经过@andreysolovev
10,398 讀數
10,398 讀數

用于嵌入式开发的 Qt:许多优点和一些缺点

经过 Andrey Solovev2022/12/12
Read on Terminal Reader

太長; 讀書

Qt Connectivity 模块通过现成的蓝牙解决方案加速了 BLE 部分的开发。使用 Qt 多媒体模块,我们的专家创建了一个具有不同功能的视频播放器。 Integra Sources 对使用 Qt 框架和 C/C++ 的体验感到满意。它帮助我们节省时间,并通过获得高效的跨平台应用程序为客户节省资金。
featured image - 用于嵌入式开发的 Qt:许多优点和一些缺点
Andrey Solovev HackerNoon profile picture

跨平台工具包允许开发人员为多个平台创建应用程序。程序员使用软件框架进行快速应用程序设计。

工具包可能包含用于创建软件的编译器、代码库和 API。

在本文中,我们将研究在 Linux/Unix、Windows 和 Android 上运行的嵌入式系统的解决方案。

Qt 框架

Qt标志图片

Qt 框架非常适合为嵌入式系统创建跨平台应用程序。嵌入式应用程序通常是用 C/C++ 编写的。

Qt 支持各种平台:

  • 移动设备(Android、iOS);
  • 桌面(Windows、Linux、macOS);
  • 嵌入式(Embedded Linux、Embedded Android、Windows Embedded、QNX等)。

C++ 是一种面向对象的编程语言 (OOP)。 OOP 使应用程序工程过程更快、更容易和更安全。

C++支持WOCA(Write Once, Compile Anywhere)原则。

执照

Qt 可以在商业开源许可下使用。您可以在开源许可下将 Qt 用于具有开源分发或没有 ‌外部分发的项目。

Qt 仪器

有用的模块使该工具包成为跨平台应用程序工程最方便的工具包之一。

Qt Creator是一种简化 GUI 应用程序设计或修改的 IDE。 Qt Creator 适用于使用 C++、QML 和 JavaScript 构建软件。

Qt Creator 屏幕截图

Qt Creator 有一个非常高效的 GUI 构造函数,称为Qt Designer 。 Qt Designer 的特点是支持信号和槽的可视化编辑。它也可以作为一个独立的工具使用。

Qt Design Studio是 Qt Creator 的精简版。它提供了一套用于构建用户界面、用户体验和人机界面的 2D/3D 工具。

Qt 框架为 UI 应用程序设计提供了QML语言。

Qt Automotive Suite模块和仪器负责创建车载信息娱乐 (IVI) 系统。

Automotive Suite 的结构中包含Qt 应用程序管理器,具有用于轻松开发 UI 系统的高级 API。

Qt GENIVI Extras模块允许设计人员将产品与 GENIVI 汽车平台的结构相结合。 Neptune 3 UI有助于在汽车信息娱乐 (IVI) 系统中为 Qt 构建 UI。

Qt Interface Framework模块包含开发中间件组件(API、后端、服务)所需的工具。

Qt Safe Renderer模块及其 UI 渲染元素允许开发人员实现重要解释与系统其余部分的分离。在发生故障或紧急情况时,这使得显示系统最关键的元素成为可能。

其他多平台框架

很多解决方案都可以解决与 Qt 相同的任务。在框架之间进行选择时,开发人员会考虑他的经验和项目的需求。

我们将了解类似 Qt 的解决方案并重点介绍每个框架的功能。

跨平台工具包用于嵌入式软件开发。

.NET 或 dotNet是 Microsoft 拥有的开发平台。

该平台的主要特点:

  • 开源;
  • 与 Windows、Linux 和 macOS 兼容;
  • 支持 C#、F# 或 Visual Basic。
  • 视觉工作室集成开发环境;
  • 它有一个很大的社区。

这种结构具有多种编译器、库和 API,可以轻松开发和编译移动和游戏应用程序。

Xamarin是 .Net 平台的一个元素,但它可以独立使用。 Xamarin 是一种流行的移动应用程序工程工具。

Xamarin 的基本元素:

  • 开源软件;
  • 使用 C#;
  • 本机编译的工具;
  • Xamarin Universal Library 和 Planet Xamarin 项目为开发人员提供了重要的信息和有用的资源。

Flutter是一个谷歌 GUI 框架。它支持 WORA(一次编写,随处运行)原则。

该结构的主要特点是

  • Windows、Linux、Android、iOS 等平台均受支持。
  • 支持Dart编程语言;
  • 特定于设计的小部件。

基于Java 的框架是轻量级的、可扩展的,并提供简单快速的应用程序开发。 Java 是最流行的编程语言之一。

另一方面,与其他语言相比,Java 语言很复杂且效率不高。

您可以使用GTK+创建 GUI 程序。

小部件工具包的主要特点:

  • 开源;
  • 多平台;
  • C是使用的语言;
  • 有可用的 C++、dotNet 和 Python 绑定。
  • 对强大主题的良好支持;
  • 与 Windows、Linux 和 macOS 兼容。

Simple DirectMedia Layer (SDL)是一个跨平台库。

SDL的主要特点:

  • 开源(在 zlib 许可下);
  • 取决于目标平台,用 C、C++ 或 Objective-C 编写;
  • 也有其他语言的绑定可用。
  • 支持多窗口;
  • 硬件加速的 2D 图形;
  • 广泛用于跨平台多媒体程序(主要是游戏);
  • 以其令人难以置信的翻译功能而闻名。

C++ 图形用户界面工具包

C++是一种编程语言。

C++ 开发人员还可以选择多种 C++ GUI 框架:

  • wxWidgets是一个开源的 C++ 工具包。它成熟但相当快。 wxWidgets 使用本机小部件(在可能的情况下)以确保自然的外观和感觉;它有一个非常方便的 wxCrafter 设计器。
  • FLTK支持 3D 图形。该框架具有轻量级和简单的设计。
  • 在 Windows、Linux、iOS、macOS 和 Android 的支持下, JUCE具有大量的音频功能。
  • Ultimate ++U++Upp )包含 GUI、SQL 和其他库,并注重效率。

还有很多其他 C++ UI 框架。它们每个都有不同的用途并具有优势。 Qt 的好处是为嵌入式系统开发应用程序的便利性。

为什么我们为嵌入式系统选择 Qt?

C++ 是嵌入式设备使用最广泛的语言之一。

它是一种高度稳定的编程语言。这就是为什么 C++ 应用程序可以运行多年并且非常适合硬件的原因。 C++ 是一种与处理器无关的语言。

C++数据结构是基于算法的,因此它可以应对开发嵌入式系统所带来的挑战。

基于 C++,Qt 提供了为不同行业的嵌入式系统创建软件所需的一切。

Integra Sources 对于跨平台解决方案有很多选择,因此更喜欢 Qt 作为嵌入式系统更合适的框架。以下是促使我们选择它的一些 Qt 品质。

  • Qt 的主要优势是能够为不同的桌面、移动和嵌入式平台使用相同的代码。
  • Qt 使用双重许可模式。 Integra Sources 通常为项目选择开源许可证。然而,应用程序设计也可应客户要求在 Qt 商业许可下使用。
  • 详细的 API 文档、示例、技术支持和庞大的社区使 Qt 易于使用。
  • 对于其他编程语言,有许多与 Qt 的绑定。
  • Qt Creator IDE 快速且响应迅速。

我们可以注意到 Qt 和 C++ 的一些微不足道的缺点:

  • C++语言很复杂。没有经验的设计师很难学习和使用它。
  • C++ 可能缺乏网络技术的灵活性。
  • 跨平台应用程序的速度可能比原生应用程序慢。
  • 交叉编译可能需要额外的步骤。

我们项目中的 Qt

我们使用 Qt 的项目数量正在增加。 Qt 允许设计人员快速轻松地解决许多任务。

项目讨论

我们负责其中一个与营销和娱乐领域相关的项目,是开发一个用于调试和配置客户设备的 Android 应用程序。

该装置有圆筒瓶,并配备了喷雾系统。它是通过 BLE 控制的。我们的开发人员必须构建用于设备管理的应用程序。此外,还必须安装一个视频播放器。

一旦玩家到达某个时间戳,应用程序就必须向设备发送命令以喷洒某种香味。

对于应用程序设计,我们选择了 C++/Qt/Qml 堆栈。此外,还使用了 Java 代码。 Qt 允许我们在短期内构建 Android 应用程序。

Qt Connectivity 模块通过现成的蓝牙解决方案加速了 BLE 部分的开发。使用 Qt 多媒体模块,我们的专家创建了一个具有不同功能的视频播放器。

Integra Sources 对使用 Qt 框架和 C/C++ 的体验感到满意。它帮助我们节省时间,并通过获得高效的跨平台应用程序为客户节省资金。

我们的产品组合包括许多嵌入式系统项目。

也在这里发布