【正文】
4) Linux 的高度模塊化使添加部件非常容易。不但成熟完善、而且使用方便,為嵌入操作系統(tǒng)提供了一個(gè)極有吸引力的選擇。 2 Linux 和 Qt 簡(jiǎn)介 Linux 主要特性 Linux 是個(gè)和 Unix 相似、以 Unix 核心為基礎(chǔ)、完全內(nèi)存保護(hù)、多任務(wù)多進(jìn)程的操作系統(tǒng)。目前一些嵌入式軟件供應(yīng)商紛紛把成熟的 RTOS內(nèi)核和功能擴(kuò)展件,以軟件 IP 核構(gòu)件形式出售,如 Microtec的 VRTXoc for ARM 就是典型例子。走行業(yè)開放系統(tǒng)道路是加快嵌入式軟件技術(shù)發(fā)展的捷徑之一。為了支持應(yīng)用軟件的特定編程模式,如 Web 或無(wú)線 Web 編程模式,還需要相應(yīng)的瀏覽器,如 HTML、 WML 等。最有量產(chǎn)效益和時(shí)代特征的嵌入式產(chǎn)品應(yīng)數(shù)因特網(wǎng)上的信息家電 (Inter Appliances),如 Web 可視電話、 Web 游戲機(jī)、 Web PDA(俗稱電子商務(wù)、商務(wù)通 )、 WAP 電話手機(jī)、以及多媒體產(chǎn)品,如 STB(電視機(jī)頂盒 )、 DVD 播放機(jī)、電子 閱讀機(jī)。 雖然市場(chǎng)上現(xiàn)在已經(jīng)有了眾多的優(yōu)秀的 GUI 應(yīng)用軟件,但隨著近年來(lái)計(jì)算機(jī)技術(shù)的迅速發(fā)展,當(dāng)新硬件、新技術(shù)出現(xiàn)時(shí),計(jì)算機(jī)的體系結(jié)構(gòu)、指令系統(tǒng)和操作系統(tǒng)都可能發(fā)生相應(yīng)的改變,這勢(shì)必會(huì)導(dǎo)致一部分應(yīng)用軟件在新環(huán)境下無(wú)法正常運(yùn)行。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。最后對(duì)關(guān)于論文進(jìn)一步工作的方向進(jìn)行了簡(jiǎn)要的討論。基于 QT 的嵌入式終端應(yīng)用程序開發(fā) —— 記事本和電子相冊(cè)開發(fā) 摘 要 越來(lái)越多的嵌入式終端需要一個(gè)圖形化的人機(jī)接口界面( GUI),良好的人機(jī)交互界面是嵌入式系統(tǒng)設(shè)計(jì)的一個(gè)關(guān)鍵技術(shù) ,尤其是在嵌入式手持設(shè)備中,對(duì)嵌入式終端的實(shí)用性、美觀性和視聽娛樂(lè)性提出了更高的要求。 關(guān)鍵詞 嵌入式 Linux; Qt; 圖形用戶界面; 記事本; 電子相冊(cè) Embedded terminal application program development based on QT —— Development of notepad and electronic album Abstract More and more embbeded Embedded Terminal need graphics user interface(GUI). A good HumanComputer Interaction interface is the key technology of embedded system design. Higher demands of the practicality, aesthetics and audiovisual entertainment of embedded terminal are needed, especially in embbeded system handheld device. Notepad and electronic photo album are being an integral part of embedded device for their pracicality and good viewing. It has some practical significance and value to develop a notepad and an album with beautiful interface, rich functions and good interaction based on embedded terminal. The aim of this paper is to design and implement a notepad and an album in the embeded terminal environment. This paper presented the advantage of Linux and the building of QT developing environment, focused on the programming mechanism of developing software with Qt. It analysed the needs of the design, designed the specific interface and overall structure of notepad and album in the embeded terminal environment according to features of embedded project designed and implemented the relevant functions of norepad(such as new file,open file ,edit file and delete file) as well as the relevant functions of album(such as enlarge 、 minify、 rotate and move the picture) based on the algorithms of notepad and album. Finally, brief disscusion about the further reaserch of this paper was presented. Key words Embedded Linux; Qt; GUI; notepad; alb 畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明 原創(chuàng)性聲明 本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。 作者簽名: 日期: 年 月 日 學(xué)位論文版權(quán)使用授權(quán)書 本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電 子版,允許論文被查閱和借閱。如果舍棄原有軟件而重新開發(fā),將會(huì)耗費(fèi)大量的人力和資金,而且浪費(fèi)了許多成熟的軟件成果。 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 7 嵌入式軟件技術(shù)面臨挑戰(zhàn) 以信息家電為代表的互聯(lián)網(wǎng)時(shí)代嵌入式產(chǎn)品,不僅為嵌入式市場(chǎng)展現(xiàn)了美好前景,注入了新的生命;同時(shí)也對(duì)嵌入式系統(tǒng)技術(shù),特別是軟件技術(shù)提出新的挑戰(zhàn)。 ( 3) 支持小型電子設(shè)備實(shí)現(xiàn)小尺寸、微功耗和低成本 為滿足這種特性,要求嵌入式產(chǎn)品設(shè)計(jì)者相應(yīng)降低處理器的性能,限制內(nèi)存容量和復(fù)用接口芯片。國(guó)際上自由軟件運(yùn)動(dòng)的順利發(fā)展, GPL 概念正對(duì)嵌入式軟件產(chǎn)業(yè)深遠(yuǎn)影響。正在興啟的 IP 構(gòu)件軟件技術(shù)正為一大批高智小型軟件公司提供發(fā)展機(jī)遇。支持廣發(fā)的計(jì)算機(jī)硬件,包括 X86, Alpha, Sparc, MIPS, PPC,ARM, NEC 等現(xiàn)有的大部分芯片。 Linux 已經(jīng)被移植到多種硬件平臺(tái),這對(duì)受開銷、時(shí)間限制的研究與開發(fā)項(xiàng)目是很有吸引力的。 ( 5) Linux 在臺(tái)式機(jī)上的成功,使大家看到了 linux 在嵌入式系統(tǒng)中的輝煌前景。 Qt 編程機(jī)制簡(jiǎn)介 ( 1) Qt 系統(tǒng)的信號(hào)與槽機(jī)制簡(jiǎn)介 信號(hào) /槽機(jī)制是 Qt 的一個(gè)中心特征并且也許是 Qt 與其它工具包的最不相同的部分。我們從來(lái)都不能確定處理函數(shù)使用了正確的參數(shù)來(lái)調(diào)用回調(diào)。從某種意義上講,它們也許對(duì)外面的世界感興趣。(實(shí)際上一個(gè)槽的簽名可以比它接收的信號(hào)的簽名少,因 為它可以忽略額外的簽名。把一個(gè)信號(hào)和另一個(gè)信號(hào)直接相連也是可以的。 一個(gè) private slots:包含了只有這個(gè)類本身的信號(hào)可以連接的槽,甚至它的子類都沒(méi)有獲得連接的權(quán) 利。 ( 3) tr()和 trUtf8() 兩個(gè)函數(shù)是用于國(guó)際化中的字符串翻譯。故記事本和電子相冊(cè)界面大小設(shè)定 320*240,并且記事本和電子相冊(cè)均支持鍵盤控制操作和點(diǎn)擊( PC 機(jī)上鼠標(biāo)點(diǎn)擊,嵌入式設(shè)備的觸摸屏點(diǎn)擊)控制操作。 ( 4) 控制文本編輯格式功能:編輯文件時(shí),文本內(nèi)容輸入到當(dāng)前界面的右端邊界處自動(dòng)換行,也可以利用鍵盤操作執(zhí)行換行動(dòng)作。 ( 9) 刪除文件功能:可以在文件列表上對(duì)指定文件進(jìn)行刪除操作,也可以打開文件后,對(duì)打開的文件進(jìn)行刪除操作。界面的最下方為兩個(gè)按鈕,左側(cè)的是功能按鈕,右側(cè)的是返回按鈕,此界面上分別標(biāo)記為“Option”和 “Exit”。界面的最下方左側(cè)為功能按鈕,右側(cè)的是返回按鈕,此界面上分別標(biāo)記為 “Option”和 “Back”。 記事本軟鍵盤界面設(shè)計(jì): 如圖 7 所示,軟鍵盤需要對(duì)文本編輯區(qū)進(jìn)行輸入操作,所以軟鍵盤界面盡量要小一些,以免影響了文本編輯區(qū) 的使用,但同時(shí)也需要保證軟鍵盤上字符的清晰顯示,故軟鍵盤界面大小為設(shè)定為 320*130。 ( 1) 顯示圖片列表功能:在圖片文件所在目錄讀取所有擴(kuò)展名為 jpg、 xpm、png、 bmp、 gif 格式的圖片文件,并將讀取的文件按順序用相同大小的縮略圖的形式顯示在圖片列表界面上。 ( 5) 圖片放大功能:在當(dāng)前圖片尺寸大小的基礎(chǔ)上,圖片可逐級(jí)放大,以尺寸的 倍遞增,最大可放大到打開圖片時(shí)顯示的初始尺寸的 3 倍。為了支持點(diǎn)擊操作,全屏顯示時(shí)不覆蓋相關(guān)功能按鈕。菜單上顯示可操作的功能選項(xiàng),并對(duì)選定的功能選項(xiàng)高亮顯示。放大圖片的顯示,縮小圖片的顯示,旋轉(zhuǎn)圖片 的顯示,圖片全屏的顯示和自動(dòng)瀏覽圖片的顯示均將顯示在圖片瀏覽界面。 NpOpenoptionForm 為打開文件功能菜單的實(shí)現(xiàn)類。 NpOpennoteForm 與 NpOpenoptionForm 雙向關(guān)聯(lián)。 記事本功能實(shí)現(xiàn) 記事本界面用到的控件主要有 QLable、 QToolButton、 QTextEdit 和 QListBox等。并且使文本保存時(shí)輸入到物理設(shè)備上時(shí)支持 unicode 編碼。根據(jù)軟鍵盤上邊緣上的點(diǎn)擊的拖動(dòng),通過(guò)跟蹤移動(dòng)點(diǎn)的坐標(biāo)位置,使整個(gè)軟鍵盤進(jìn)行相應(yīng)距離的移動(dòng)。圖片列表由 12 個(gè) Label 組成,將從當(dāng)前目錄下掃描 jpg、 xpm、 png、 gif、 bmp 格式的圖片并將其名稱存入鏈表中,通過(guò) load 函數(shù)加載圖片到一個(gè) QImage 類型的變量中,然后將此變量與Label 關(guān)聯(lián)起來(lái),以實(shí)現(xiàn)圖片在 Label 上的顯示。且根據(jù)不同 的按鍵按下,進(jìn)行不同位置圖片的選中。 開 始將 所 有 圖 片 文 件 名 存 入 鏈 表結(jié) 束是 否 有j p g 、 x p m 、 p n g 、 g i f 、 b m p格 式 圖 片Y e sN o建 立 文 件 列 表 迭 代 器 i t掃 描 文 件 目 錄 下所 有 文 件 包 括 隱 藏 文 件設(shè) 定 圖 片 列 表 顯 示 界 面 格 式 ( 4 * 3 )f o r ( i = 0 。如果圖片的縮略圖已經(jīng)存在,則將縮略圖直接顯示在 Label 上,如果縮略圖 不存在,則生成圖片的縮略圖。 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 27 開 始結(jié) 束設(shè) 定 文 本 自 動(dòng) 換 行 位 置設(shè) 定 文 本 自 動(dòng) 換 行 方 式選 定 待 打 開 的 文 件N o執(zhí) 行 菜 單 功 能選 擇 退 出 文 件還 是 顯 示 功 能 菜 單 ?顯 示菜 單退 出文 件接 受 文 本 編 輯退 出 文 件打 開 文 件 并 顯 示 文 件 內(nèi) 容文 件 內(nèi) 容 是 否 被 修 改 ?是 否 保 存 修 改 后 的 文 件 內(nèi) 容 ?Y e s保 存 文 件 內(nèi) 容Y e sN o 圖 20 打開文件流程圖 Fig. 20 Open file flow diagram 開 始結(jié) 束載 入 軟 鍵 盤 上 各 按 鍵 顯 示 字 符軟 鍵 盤 按 鍵 布 局定 義 軟 鍵 盤 按 鍵 M y K e y隨 點(diǎn) 擊 動(dòng) 作 移 動(dòng) 而 移 動(dòng)鍵 盤 在 界 面 上 的 位 置點(diǎn) 擊 的 是 按 鍵 還 是 鍵 盤 邊 緣 ?鍵 盤邊 緣按 鍵設(shè) 置 點(diǎn) 擊 事 件 過(guò) 濾 器S w i t c h ( 按 鍵 字 符 )N o按 鍵 上 字 符 轉(zhuǎn) 為為 小 寫 字 符設(shè) 定 C a p 鍵 切 換 狀 態(tài) 光 標(biāo) 位 置 處 文 本 換 行 設(shè) 定 S h i f t 鍵 切 換 狀 態(tài) 刪 除 光 標(biāo) 左 側(cè) 字 符按 鍵 上 字 符是 大 寫 還 是 小 寫 ?按 鍵 上 字 符 轉(zhuǎn) 為大 寫 字 符按 鍵 上 字 符 顯 示為 普 通 字 符按 鍵 上 字 符 顯 示為 上 字 符向 文 本 編 輯 區(qū) 輸 入 字 符 軟 鍵 盤 界 面 退 出數(shù) 字E S C字 母C a pE n t e r B a c k S p a c eS h i f t按 鍵 上 字 符是 否 是 上 字 符 ?大寫小寫Y e s華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 28 圖 21 軟鍵盤流程圖 Fig. 21 Soft keyboard flow diagram 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 29 電子相冊(cè)主要算法設(shè)計(jì)和實(shí)現(xiàn) 電子相冊(cè)類結(jié)構(gòu)設(shè)計(jì) A l b D e l F o r m