2012-02-20 33 views
2

首先,我非常抱歉提出這樣的基本問題。我正在決定是否應該在嵌入式Linux設備上使用Qt(首先嚐試使用TI OMAP EVM),以開發用戶界面並管理在設備上運行的應用程序(並在運行時添加刪除應用程序通過無線(WiFi)軟件下載)。Qt4嵌入式Linux新手 - 應用程序管理,部署和通用架構?

我一直在閱讀諾基亞Qt參考文檔,覺得我錯過了理解中的基本步驟。

如果我可能只是澄清我的意思是一個應用程序(我不知道我讀過的Qt文檔與此一致):應用程序是一個運行在設備上並使用該設備服務的程序。 所以我想我可以使用Qt作爲應用程序框架,並從中調用(或啓動)Qt應用程序。應用程序示例是:電子郵件客戶端,映射,筆記本電腦等。 我會設想一個主窗口,其中包含可用應用程序列表(可能是android等圖標),然後從該主窗口啓動應用程序。如果事件來自系統,則應用程序框架將適當地路由事件,並且可能會導致另一個應用程序使用全屏。

爲了理解這是否意味着我必須運行一個應用程序然後運行應用程序,或者如果在Qt體系結構中有一些內置機制來執行這種類型的應用程序啓動,我正在苦苦掙扎(作爲一個完整的新手) 。

因此,我顯然不需要直接問一個問題如何做到這一點,我顯然需要從基礎知識開始。我已經閱讀了QWSServer和QWSClient體系結構,這很有道理。 但是,我無法找到有關如何操作的信息:

  • 啓動應用程序或對其進行管理。 (誰啓動/掛起應用程序?)
  • 應用程序的部署模型(它們是否與QWSServer處於相同的Linux進程或線程中?)
  • 如何在運行時添加應用程序?

我猜我錯過了一個非常明顯的頂級文檔,解釋了這種基本功能。這可能是我應該花時間下載SDK,並嘗試使用Qt(再次道歉,我現在沒有太多時間做適當的工作:()

所以,如果任何人都可以指出我有關文件的方向,這將是非常讚賞

回答

1

Qt是一個窗口工具包 - !不是一個窗口管理器

有一些Qt的窗口管理器項目的小型設備,當然還有整個KDE的是用Qt編寫的

Qt/Embedded實際上只是Qt的硬件 - 而不是依靠操作系統系統或X窗口來完成繪圖。我想你可能會將Qt與其中一款使用Qt作爲其gui的諾基亞移動操作系統相混淆。

+0

感謝您的回覆。是的,我想我是希望得到更多!我已經被告知了現在是QPA的燈塔項目,這可能會幫助我在這個領域。我會研究一下,但文檔在地面上很薄弱!再次感謝Ringo – Ringo 2012-02-22 18:58:19

0

QWS是一個窗口系統,專門設計用於在嵌入式情況下支持Qt應用程序,其中可能沒有其他窗口管理器(或可接受的輕量級窗口管理器)。它的功能比KDE或gnome等重量級的功能要少一些,但是可以沿着同樣的方向處理。然而,關於它的一個方面是,你可以開發自己的插件來繪製窗框,標題欄等等。,以便以您想要的方式塑造他們。

在參考QWS,你問:

  • 啓動應用程序或管理它們。 (誰啓動/暫停應用程序?)

操作系統啓動並掛起應用程序。 QWS是一個開窗系統,而不是操作系統。在我所知道的情況下,它運行在Linux變體之上。您預想的主窗口可能最好作爲自己的應用程序開發,以某種方式啓動其他應用程序。應用

  • 部署模型(他們是在同一個Linux的進程或線程的QWSServer?)

他們一般都在比窗口服務器的其他進程。當然,根據您啓動它們的方式,它們可能與啓動板應用程序處於相同的進程或不同的進程。注意在同一個進程中運行它的潛在問題:在給定進程中只能有一個QApplication實例。

  • 如何在運行時添加應用程序?

我會假設你的啓動板將提供一種機制,添加應用程序,這將其放在合適的位置上盤。你可以用它來做任何事情來改變要啓動的應用程序列表。一個例子就是基於一個祝福的目錄來更新你的GUI。另一個選擇可能是將一個單獨的插件與應用程序捆綁在一起,並且您的啓動板應用程序會加載這些插件以獲取有關應用程序的信息。真的,假設你提供了在系統上安裝應用程序的入口點,這裏的可能性幾乎是無止境的。