【问题标题】:Newbie to Qt4 embedded Linux - Application management, deployment and general architecture?Qt4 嵌入式 Linux 的新手 - 应用程序管理、部署和通用架构?
【发布时间】:2012-02-20 14:06:50
【问题描述】:

首先,对于提出这些基本问题,我深表歉意。我正在决定是否应该在嵌入式 linux 设备上使用 Qt(第一次尝试将在 TI OMAP EVM 上)来开发 UI 以及管理在设备上运行的应用程序(以及在运行期间添加删除应用程序)无线 (WiFi) 软件下载时间)。

我一直在阅读诺基亚 Qt 参考文档,感觉自己错过了理解的基本步骤。

如果我可以澄清一下应用程序的含义(我不确定我阅读的 Qt 文档是否与此一致):应用程序是在设备上运行并使用该设备服务的程序。 所以我认为我可以将 Qt 用作应用程序框架,并从中调用(或启动)Qt 应用程序。应用示例有:电子邮件客户端、映射、笔记本等。 我会设想一个主窗口,其中包含可用应用程序列表(可能是 android 等图标),然后从该主窗口启动应用程序。如果事件来自系统,那么应用程序框架将适当地路由事件,这可能会导致另一个应用程序使用全屏。

我(作为一个完整的新手)正在努力了解这是否意味着我必须运行一个应用程序然后从中运行应用程序,或者 Qt 架构中是否有一些内置机制来执行这种类型的应用程序启动。

因此,我显然需要从基础开始,而不是直接询问如何做到这一点。我已经阅读了有关 QWSServer 和 QWSClient 架构的信息,这在某种程度上是有道理的。 但是,我找不到有关如何:

  • 启动应用程序或管理它们。 (谁启动/暂停应用程序?)
  • 应用程序的部署模型(它们是否与 QWSServer 在同一个 Linux 进程或线程中?)
  • 如何在运行时添加应用程序?

我猜我错过了一个解释这种基本功能的非常明显的顶级文档。可能是我应该花时间下载 SDK 并实际尝试使用 Qt(再次道歉,我现在没有太多时间做适当的工作:()

所以,如果有人能指出相关文件的方向,将不胜感激!

【问题讨论】:

    标签: qt4 embedded qtembedded


    【解决方案1】:

    Qt 是一个窗口工具包——而不是一个窗口管理器。

    有一些用于小型设备的 Qt 窗口管理器项目,当然整个 KDE 都是用 Qt 编写的。

    Qt/Embedded 实际上只是将 Qt 归结为硬件——而不是依赖操作系统或 X windows 来进行绘图。我认为您可能会将 Qt 与使用 Qt 作为 gui 的诺基亚移动操作系统之一混淆。

    【讨论】:

    • 感谢您的回复。是的,我想我有点希望更多!我被告知现在是 QPA 的灯塔项目,它可能在这方面对我有所帮助。我会调查一下,但是文档很薄!再次感谢林戈
    【解决方案2】:

    QWS 是一个窗口系统,专门设计用于在嵌入式情况下支持 Qt 应用程序,其中可能没有其他窗口管理器(或可接受的轻量级管理器)。它的功能比 KDE 或 gnome 等重量级的要少,但处理方式相同。但是,其中一个方面是您可以开发自己的插件来绘制窗口框架、标题栏等,以便按照您想要的方式设置它们的样式。

    关于 QWS,您询问了:

    • 启动应用程序或管理它们。 (谁启动/暂停应用程序?)

    操作系统启动和挂起应用程序。 QWS 是一个窗口系统,而不是一个操作系统。在我所知道的情况下,它运行在 linux 变体之上。您设想的主窗口可能最好开发为它自己的应用程序,以某种方式启动其他应用程序。

    • 应用程序的部署模型(它们是否与 QWSServer 在同一个 Linux 进程或线程中?)

    它们通常在窗口服务器之外的其他进程中。当然,根据您启动它们的方式,它们可能与您的启动板应用程序在同一进程或不同进程中。注意在同一进程中运行它的潜在问题:在给定进程中只能有一个 QApplication 实例。

    • 如何在运行时添加应用程序?

    我假设您的启动板将提供一种添加应用程序的机制,该机制会将其放置在磁盘上的适当位置。您可以使用它来执行任意数量的操作来更改要启动的应用程序列表。一个例子是根据祝福目录更新您的 GUI。另一种选择可能是将单独的插件与应用程序捆绑在一起,然后您的启动板应用程序加载这些插件以获取有关应用程序的信息。实际上,假设您提供了在系统上安装应用程序的入口点,那么这里的可能性几乎是无穷无尽的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      相关资源
      最近更新 更多