日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于Qt、Qt/E、Qtopia、qvfb、framebuffer、qpe等概念的对比介绍

發布時間:2023/12/15 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Qt、Qt/E、Qtopia、qvfb、framebuffer、qpe等概念的对比介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近要在嵌入式linux平臺下搞UI界面開發,經過一番挑選,決定使用Qt作為UI開發平臺。不過Qt中所涉及的Qt/E、Qtopia、qvfb、framebuffer、qpe等眾多概念,卻有點剪不斷理還亂。于是決定花點時間對這些概念好好捋一捋。

說明一下,下面的文字內容大部分確實源自于網絡摘錄,但是都是經過我自己本人消化理解之后進行重新整理編排的,并不是簡單的復制黏貼。

一、QT

首先介紹QT,它是一切之源。QT是一個跨平臺的C++圖形用戶界面庫(可以類比成Win平臺下的MFC),由挪威TrollTech公司出品。Qt是Trolltech最早也是最有名的產品,它最初是作為一個跨平臺的C++ GUI 庫開發的,但隨著它的發展,其中增加了一系列與GUI無關的庫,如Xml、Socket、Thread等等,現在Qt已經成為了一個通用的C++跨平臺類庫。到了4.0版,更是將GUI部分從核心庫分離出來,以便開發出不帶GUI的服務程序。

Qt的授權是分為兩條線,商業版和開源版。如果使用商業版的Qt,那么開發出的程序可以是私有的和商業的;如果使用的是開源版的Qt,由于其使用的是GPL協議(不是 LGPL),那么開發出的程序也必須是GPL的。

Qt的版本是按照不同的圖形系統來劃分的,目前分為四個版本:

  • Win32版,適用于Windows平臺;
  • X11版,適用于使用了X系統的各種Linux和Unix平臺;
  • Mac版,適用于蘋果Mac OS;
  • embedded版,適用于具有幀緩沖(framebuffer)的Linux平臺。

所以,一般來說,Qt泛指Qt的所有桌面版本,比如Qt for X11,Qt for Windows,Qt for Mac等。由于Qt最早是在Linux中隨著KDE而流行開來的,因此通常很多人說的Qt都指用于Linux/Unix的Qt for X11。一般命名為qt-x11-opensource-xxx!

二、QT/E

Qt剛出現的時候,在linux系統上,都是基于X11環境的(X11也叫做X Window,是一種位圖顯示的視窗系統。它是在Unix和類Unix操作系統,以及OpenVMS上建立圖形用戶界面的標準工具包和協議),該環境有一個最大的問題就是資源消耗比較大。而對于嵌入式linux領域,受限的硬件環境明顯不可能去運行龐大的X11服務器,因此,TrollTech公司對QT進行了優化,推出了嵌入式版本的Qt-embedded(Qte,也可叫做QT/E),該版本的QT跳過了Xlib和XServer,而是直接操作幀緩沖(framebuffer),在速度和體積上有很大的提高。

不過要注意的是,雖然QT/E是Qt的嵌入式版本,但是它不是Qt/X11的子集,它有部分機制(比如QCOP等)就不能用于Qt/X11中。

三、Qtopia

Qtopia最初是sourceforge.net上的一個開源項目,全稱是Qt Palmtop Environment,是構建于Qte之上一個類似桌面系統的應用環境,以消費類電子設備為目標,分為PDA和Phone兩個版本,包含完整的應用層、靈活的用戶界面、窗口操作系統、應用程序啟動程序以及開發框架,甚至預置了掌上系統常見的功能如電話簿、日程表等,為基于Linux操作系統的PDA和Phone提供了一個完整的圖形環境。

這里要注意的是,Qtopia是基于Qte的應用環境的開發出來的,換個說法就是Qte是庫,Qtopia是用Qte這個庫開發出來的應用程序(必須搞清楚Qtopia就是一個應用程序)。其最高免費版本是Qtopia-2.2.0,之后就再沒更新更高免費版本的Qtopia。

值得特別注意的是Qte和Qtopia之間的關系。在版本4之前,Qte和Qtopia是不同的兩套程序,Qte是基礎類庫,Qtopia是構建于Qte之上的一系列應用程序。但從版本4開始,Trolltech將Qte并入了Qtopia,并推出了新的Qtopia4。在該版中,原來的Qte被稱為Qtopia Core,作為嵌入式版本的核心,既可以與Qtopia配合,也可以獨立使用。原來的Qtopia則被分成幾層, 核心的應用框架和插件系統被稱為Qtopia Platform,上層的應用程序則按照不同的目標用戶分為不同的包,如Qtopai PDA,Qtopia Phone。

四、QT Creator

QT Creator是跨平臺的Qt IDE,它其實跟Eclipse相似,都是一個集成開發環境,也就是說QT Creator是我們用來開發QT相關的一個平臺。

以下來自小百:QT Creator是Qt被Nokia收購后推出的一款新的輕量級集成開發環境(IDE)。此IDE能夠跨平臺運行,支持的系統包括Linux(32位及64位)、Mac OS X以及Windows。根據官方描述,QT Creator的設計目標是使開發人員能夠利用QT這個應用程序框架更加快速及輕易的完成開發任務。在功能方面,Qt Creator 包括項目生成向導、高級的 C++ 代碼編輯器、瀏覽文件及類的工具、集成了 Qt Designer、圖形化的 GDB 調試前端,集成 qmake 構建工具等。

五、FrameBuffer

FrameBuffer 是出現在liunx 2.2.xx內核當中的一種驅動程序接口。使用FrameBuffer這個設備來供用戶態進程實現直接寫屏。Framebuffer機制模仿顯卡的功能,將顯卡硬件結構抽象掉,可以通過Framebuffer的讀寫直接對顯存進行操作。在PC中使用的一般都是基于X Lib庫的X Window,但是在嵌入式下就沒法使用如此龐大的X Lib庫來完成顯示,顯示設備簡陋是一方面,此外嵌入式的片上資源也不允許。這樣就只能使用Framebuffer方式往屏幕設備上繪圖顯示了。與X Lib相比,Framebuffer本身不具備任何運算數據的能力,就好比是一個暫時存放水的水池,CPU將運算后的結果放到這個水池,水池再將結果流到顯示器,中間不會對數據做處理。在嵌入式應用開發中多使用framebuffer方式來降低資源消耗和提高效率。

六、qvfb

全程為qt virtual framebuffer。是為QT提供的一個虛擬framebuffer的應用程序,實現對qt的應用程序提供一個模擬的嵌入式設備,可直接看到程序在“實際”設備中的運行情況。在PC上開發QT程序時,主要使用它來進行仿真。說白了就是:qvfb也就是一個應用程序,就是給QT程序提供一個模擬的framebuffer,這樣就可以在PC中為基于framebuffer運行的QT程序(一般就是指嵌入式QT程序)建立一個虛擬的運行平臺。qvfb主要與Qtopia(或qpe)一起使用。

七、qpe

【另外,在查找整理上述資料的過程中,發現還有一個概念,叫做qpe。雖然目前我尚未接觸到,但是感覺應該也是屬于這一個圈子里的,于是先摘錄在此,以備日后查閱】。

全稱為Qt Palmtop Environment。為qt程序建立一個桌面環境,有時可以簡單理解就是指的Qtopia。

說明:關于qvfb與qpe,我的理解是,qpe在運行時會建立一個虛擬的framebuffer(通過共享內存方式)與qvfb的虛擬framebuffer進行交互,這里qpe作為輸出,為qvfb提供輸入,而qvfb則模擬出具體的嵌入式設備(如手機,PDA平板電腦等),并將鼠標鍵盤等操作信息反饋給qpe。這樣就使用虛擬framebuffer的方式建立了一個完整的,適合嵌入式qt程序運行的虛擬嵌入式設備。如下圖所示:

利用qvfb虛擬出了一部手機,而我們的程序就會運行在這部手機的“屏幕里面”!很容易理解吧。

八、篇后語

本篇僅僅只是對上述概念進行對比和區分,并未對Qt的開發過程進行介紹,后面會有專門的篇幅進行專題介紹。

總結

以上是生活随笔為你收集整理的关于Qt、Qt/E、Qtopia、qvfb、framebuffer、qpe等概念的对比介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。