国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩


嵌入式培訓資料:Qt/Embedded編程入門

分享到:
           

    Qt/Embedded以原始Qt為基礎,并做了許多出色的調(diào)整以適用于嵌入式環(huán)境。Qt/Embedded通過Qt API與Linux I/O設施直接交互,成為嵌入式Linux端口。同Qt/X11相比,Qt/Embedded很省內(nèi)存,因為它不需要一個X服務器或是Xlib庫,它在底層拋棄了X lib,采用framebuffer(幀緩沖)作為底層圖形接口。同時,將外部輸入設備抽象為keyboard和mouse輸入事件。Qt/Embedde的應用程序可以直接寫內(nèi)核緩沖幀,這避免開發(fā)者使用繁瑣的Xlib/Server系統(tǒng)。圖1.1比較了Qt/Embedded與Qt/X11的架構區(qū)別。


圖1.1 Qt/Embedded與Qt/ X11的Linux版本的比較

    使用單一的API進行跨平臺的編程可以有很多好處。提供嵌入式設備和桌面計算機環(huán)境下應用的公司可以培訓開發(fā)人員使用同一套工具開發(fā)包,這有利于開發(fā)人員之間共享開發(fā)經(jīng)驗與知識,也使得管理人員在分配開發(fā)人員到項目中的時候增加靈活性。更進一步來說,針對某個平臺而開發(fā)的應用和組件也可以銷售到Qt支持的其他平臺上,從而以低廉的成本擴大產(chǎn)品的市場。

    (1)窗口系統(tǒng)

    一個Qt/Embedded窗口系統(tǒng)包含了一個或多個進程,其中的一個進程可作為服務器。該服務進程會分配客戶顯示區(qū)域,以及產(chǎn)生鼠標和鍵盤事件。該服務進程還能夠提供輸入方法和一個用戶接口給運行起來的客戶應用程序。該服務進程其實就是一個有某些額外權限的客戶進程。任何程序都可以在命令行上加上“-qws”的選項來把它作為一個服務器運行。

    服務器與客戶之間使用UNIX Domain Socket進行通信,通過重載QApplication的qwsEventFilter()函數(shù),可以對客戶從服務器收到的所有事件進行直接的訪問?蛻襞c服務器,以及客戶之間使用QCOP協(xié)議進行通信,QCOP是一個在不同的通道上進行消息傳遞的多對多通信協(xié)議。在Qt/Embedded中,這種通信機制使用QCopChannel類來實現(xiàn),有關這個類的描述,請讀者參考相關資料。

    QProcess類提供了另外一種異步的進程間通信機制。它用于啟動一個外部的程序并且通過寫一個標準的輸入和讀取外部程序的標準輸出和錯誤碼來和它們通信。

    (2)字體

    Qt/Embedded使用FreeType 2字體引擎來產(chǎn)生字體的輸出,所支持的格式取決于本機所安裝的FreeType庫的版本。另外,Qt/Embedded支持Qt預渲染的字體格式(QPF與QPF2)。QPF2是Qt/Embedded自帶的格式,QPF是由Qt/Embedded 2.x,3.x所繼承過來的。所有支持的字體均使用Unicode字符編碼,一個完整的16點陣的Unicode字體的存儲空間通常超過1MB。

    FreeType 2庫支持下列字體格式:TrueType(TTF),PostScript Type1(PFA/PFB),Bitmap Distribution Format(BDF),CID-keyed Type1,Compact Font Format(CFF),OpenType fonts,SFNT-based bitmap fonts,Portable Compiled Format(PCF),Microsoft Windows Font File Format(Windows FNT),Portable Font Resourse(PFR),Type 42(limited support)?梢詾镕reeType 2字體引擎添加模塊,以使其支持其它的字體。

    Qt預渲染字體(QPF2)是Qt/Embedded特有的、與架構無關的、輕量級的字體格式。Nokia提供了交叉編譯工具makeqpf,可以由系統(tǒng)字體中生成QPF2文件。另外,考慮到兼容性,Nokia提供了對繼承而來的QPF格式的支持。

    (3)輸入設備及輸入法

    Qt/Embedded支持幾種鼠標協(xié)議:BusMouse、IntelliMouse,Microsoft和MouseMan.Qt/ Embedded還支持NECVr41XX和iPAQ的觸摸屏。通過從QWSMouseHandler或者Qcalibra- tedMouseHandler派生子類,開發(fā)人員可以讓Qt/Embedded支持更多的客戶指示設備。

    Qt/Embedded支持標準的101鍵盤和Vr41XX按鍵,通過子類化QWSKeyboardHandler可以讓Qt/Embedded支持更多的客戶鍵盤和其他的非指示設備。

    對于非拉丁語系字符(例如阿拉伯,中文,希伯來和日語)的輸入法,需要把它寫成過濾器的方式,并改變鍵盤的輸入。輸入法的作者應該對全部的Qt API的使用有完整的認識。在一個無鍵盤的設備上,輸入法成了惟一的輸入字符的手段。Qtopia提供了4種輸入方法:筆跡識別器、圖形化的標準鍵盤、Unicode鍵盤和基于字典方式提取的鍵盤。

    (4)屏幕加速

    通過子類化QScreen和QRasterPaintEngine可以實現(xiàn)硬件加速,從而為屏幕操作帶來好處。Trolltech提供了Mach64和Voodoo3視頻卡的硬件加速的驅(qū)動例子,同時可以按照協(xié)議編寫其他的驅(qū)動程序。

    精品課程推薦:QT應用開發(fā)培訓,幫助學員熟悉Qt 的開發(fā)工具與開發(fā)環(huán)境,了解Qt 基本組件與框架,能夠基于各種常見的操作系統(tǒng)平臺撰寫Qt 窗口程序,并掌握 Qt 在嵌入式系統(tǒng)的核心運用,包括Qt/Embedded編程方法和編程技能、常用的基礎類、信號和槽的概念和對象間通訊機制及圖形界面的編寫。


   熱點鏈接:

   1、FPGA硬件系統(tǒng)設計實用技巧
   2、python可以編寫android程序嗎?
   3、嵌入式Android系統(tǒng)移植
   4、三種常見的FPGA結構
   5、FPGA從事的工作是什么

更多新聞>>