【正文】
為 320*240。 圖 3 新建文件編輯界面Fig. 3 New document editing interface(3) 打開(kāi)文件內(nèi)容顯示界面:如圖 4 所示,界面大小為 320*240。菜單上顯示可操作的功能選項(xiàng),并對(duì)選定的功能選項(xiàng)高亮顯示。界面的最下方左側(cè)為功能按鈕,右側(cè)的是返回按鈕,此界面中分別標(biāo)記為“Yes”和“No” 。 圖 7 軟鍵盤(pán)界面Fig . 7 Soft keyboard interface 記事本結(jié)構(gòu)設(shè)計(jì)文件列表建立新文件功能選擇功能選擇刪除文件打開(kāi)文件讀取文件內(nèi)容軟鍵盤(pán)輸入文本功能選擇選擇保存修改后文件打開(kāi)列表中文件讀取內(nèi)容讀取并顯示下一個(gè)文件內(nèi)容圖 8 記事本結(jié)構(gòu)圖Fig. 8 Notepad structural diagram如圖 8 所示,文件列表界面是記事本的入口和出口。 電子相冊(cè)架構(gòu)設(shè)計(jì) 電子相冊(cè)設(shè)計(jì)需求電子相冊(cè)支持 jpg、png、gif、xpm、和 bmp 格式圖片的瀏覽,并可以對(duì)圖片進(jìn)行放大、縮小或旋轉(zhuǎn)角度顯示。其它格式文件忽略不讀。若圖片原本大小沒(méi)有超過(guò)圖片瀏覽區(qū)域大小,則以原始尺寸在圖片瀏覽區(qū)域顯示。最小可縮小到打開(kāi)圖片時(shí)顯示的初始尺寸的 倍。(8) 圖片移動(dòng)功能:圖片執(zhí)行放大功能后,圖片可在瀏覽區(qū)域進(jìn)行移動(dòng)。(11) 給用戶(hù)提供友好的圖形交互界面,并合理安排界面元素布局,使其美觀并且方便用戶(hù)操作。界面的最下方為兩個(gè)按鈕,左側(cè)的是功能按鈕,右側(cè)的是返回按鈕,此界面上分別標(biāo)記為“Option”和“Exit”。圖 10 功能菜單Fig. 10 Function menu相鄰兩個(gè)界面之間切換時(shí),若后出現(xiàn)的界面大小小于先出現(xiàn)的界面大小,則第一個(gè)界面顯示蒙版即表示為禁用狀態(tài),如圖 10。通過(guò)圖片列表功能菜單,可執(zhí)行打開(kāi)圖片進(jìn)行瀏覽的功能和刪除圖片的功能,并根據(jù)所選擇的功能進(jìn)入圖片瀏覽界面或顯示刪除文件提示框。圖片列表刪除圖片功能選擇縮小顯示圖片打開(kāi)圖片全屏顯示圖片 自動(dòng)瀏覽圖片功能選擇放大顯示圖片圖片逆時(shí)針旋轉(zhuǎn)圖片順時(shí)針旋轉(zhuǎn)正常顯示圖片圖 15 電子相冊(cè)結(jié)構(gòu)圖Fig. 15 Album structural diagram4 算法設(shè)計(jì)和實(shí)現(xiàn) 記事本主要算法設(shè)計(jì)和實(shí)現(xiàn) 記事本類(lèi)結(jié)構(gòu)設(shè)計(jì)N p M y t e x t e d i tN p M e s s a g e b o x N p N o t e p a d F o r m N p S a v e F o r mN p O p e n n o t e F o r m N p F u n c t i o n v i e w F o r m N p N e w n o t e F o r mN p O p e n o p t i o n F o r m N p N e w o p t i o n F o r mN p D e l e t e N o t e F o r mM y K e y b o a r dM y K e y圖 16 記事本類(lèi)圖Fig. 16 Notepad class diagram類(lèi)圖說(shuō)明:NpNotepadForm 為記事本程序的主界面類(lèi),即顯示文件列表的類(lèi)。NpDeletenoteForm 為刪除文件的功能實(shí)現(xiàn)類(lèi)。NpMessagebox 為內(nèi)容修改提示框的功能實(shí)現(xiàn)類(lèi)。NpFunctionviewForm 分別與 NpNewnoteForm、NpOpennoteForm、NpDeletenoteForm 成單向關(guān)聯(lián)。NpNewnoteForm 分別與 NpOpennoteForm 和 MyKeyboard 單向關(guān)聯(lián)。NpSaveForm 與 NpNewnoteForm 為聚合(聚集)關(guān)系。流程圖如圖 17。如果文件名不符合要求,則設(shè)置文件名的輸入無(wú)效,并提示重新輸入。開(kāi)始將所有記事本文件名存入鏈表結(jié)束檢查目錄下是否有記事本文件Y e sN o按照文件名鏈表中文件的順序顯示文件名列表在列表顯示界面上設(shè)定文件列表中默認(rèn)選擇項(xiàng)建立文件列表迭代器掃描文件目錄下所有文件包括隱藏文件對(duì)目錄下文件按建立時(shí)間進(jìn)行排序圖 17 顯示文件列表流程圖Fig. 17 File list showing flow diagram開(kāi)始結(jié)束S w i t c h ( 選擇菜單項(xiàng) )關(guān)閉父窗口蒙版顯示菜單項(xiàng)關(guān)閉父窗口蒙版新建打開(kāi)關(guān)閉父窗口蒙版刪除關(guān)閉父窗口蒙版軟鍵盤(pán)關(guān)閉父窗口蒙版退出新建文件功能實(shí)現(xiàn) 打開(kāi)文件功能實(shí)現(xiàn) 刪除文件功能實(shí)現(xiàn) 軟鍵盤(pán)功能實(shí)現(xiàn) 返回文件列表圖 18 功能菜單流程圖Fig. 18 Function menu flow diagram 開(kāi)始進(jìn)入文本編輯界面結(jié)束文件名是否合法Y e sN o設(shè)定文本自動(dòng)換行位置設(shè)定文本自動(dòng)換行方式提示輸入文件名提示文件名不合法文本內(nèi)容是否為空 ?N o執(zhí)行菜單功能選擇保存文件還是顯示功能菜單 ?Y e s顯示菜單保存文件接受文本編輯保存文件到當(dāng)前目錄下圖 19 新建文件流程圖Fig. 19 New file flow diagram(4) 打開(kāi)文件功能的實(shí)現(xiàn):從文件列表選定打開(kāi)的文件,然后將文件內(nèi)容讀到 QTextStream 中再顯示在 QTextEdit 中,并且規(guī)定顯示格式。(5) 軟鍵盤(pán)的實(shí)現(xiàn): 定義按鍵類(lèi) MyKey 繼承自 QPushButton,點(diǎn)擊的時(shí)候發(fā)射該按鍵的文字。開(kāi)始結(jié)束設(shè)定文本自動(dòng)換行位置設(shè)定文本自動(dòng)換行方式選定待打開(kāi)的文件N o執(zhí)行菜單功能選擇退出文件還是顯示功能菜單 ?顯示菜單退出文件接受文本編輯退出文件打開(kāi)文件并顯示文件內(nèi)容文件內(nèi)容是否被修改 ?是否保存修改后的文件內(nèi)容 ?Y e s保存文件內(nèi)容Y e sN o圖 20 打開(kāi)文件流程圖Fig. 20 Open file flow diagram開(kāi)始結(jié)束載入軟鍵盤(pán)上各按鍵顯示字符軟鍵盤(pán)按鍵布局定義軟鍵盤(pán)按鍵 M y K e y隨點(diǎn)擊動(dòng)作移動(dòng)而移動(dòng)鍵盤(pán)在界面上的位置點(diǎn)擊的是按鍵還是鍵盤(pán)邊緣 ?鍵盤(pán)邊緣按鍵設(shè)置點(diǎn)擊事件過(guò)濾器S w i t c h ( 按鍵字符 )N o按鍵上字符轉(zhuǎn)為為小寫(xiě)字符設(shè)定 C a p 鍵切換狀態(tài) 光標(biāo)位置處文本換行 設(shè)定 S h i f t 鍵切換狀態(tài) 刪除光標(biāo)左側(cè)字符按鍵上字符是大寫(xiě)還是小寫(xiě) ?按鍵上字符轉(zhuǎn)為大寫(xiě)字符按鍵上字符顯示為普通字符按鍵上字符顯示為上字符向文本編輯區(qū)輸入字符 軟鍵盤(pán)界面退出數(shù)字E S C字母C a pE n t e r B a c k S p a c eS h i f t按鍵上字符是否是上字符 ?大寫(xiě)小寫(xiě)Y e s圖 21 軟鍵盤(pán)流程圖Fig. 21 Soft keyboard flow diagram 電子相冊(cè)主要算法設(shè)計(jì)和實(shí)現(xiàn) 電子相冊(cè)類(lèi)結(jié)構(gòu)設(shè)計(jì)A l b D e l F o r mA l b P i c C h o o s e F o r mA l b M e n u F o r mA l b P i c V i e w F o r mA l b P i c O p t i o n F o r m圖 22 電子相冊(cè)類(lèi)圖 Fig. 22 Album class diagram類(lèi)圖說(shuō)明:電子相冊(cè)程序定義了 5 個(gè)類(lèi),AlbPicChooseForm 為電子相冊(cè)圖片列表界面類(lèi),AlbMenuForm 為電子相冊(cè)圖片列表功能菜單類(lèi),AlbPicViewForm 為圖片瀏覽類(lèi),AlbOptionForm 為圖片瀏覽界面的功能菜單類(lèi),AlbDelForm 為圖片刪除類(lèi)。其中,對(duì)圖片的各種處理均在 AlbPicViewForm 類(lèi)中實(shí)現(xiàn),如放大、縮小、逆時(shí)針旋轉(zhuǎn)、順時(shí)針旋轉(zhuǎn)、全屏顯示、圖片移動(dòng)顯示等。如果圖片的縮略圖已經(jīng)存在,則將縮略圖直接顯示在 Label 上,如果縮略圖不存在,則生成圖片的縮略圖。(2) 圖片選中狀態(tài)功能實(shí)現(xiàn):首先設(shè)定圖片選中狀態(tài)的表示方式,即縮略圖圖片的尺寸放大,滿(mǎn)足縮略圖寬為 80 像素或高為 60 像素中任一條件,保持圖片的寬高比例與原圖片寬高比例相同,選中狀態(tài)下的圖片縮略圖在圖片列表界面上凸起顯示。開(kāi)始將所有圖片文件名存入鏈表結(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 。流程圖如圖25。縮小圖片時(shí)要保證縮小后的圖片依然居于相框開(kāi)始改變 m d _ C h a n g e S i z e 的值結(jié)束m d _ C h a n g e S i z e 等于 0 . 5N oY e sm d _ C h a n g e S i z e 等于 0 . 5改變菜單條目狀態(tài)邊界調(diào)整 , 修正 m i _ M o v e X 與m i _ M o v e Y 的值調(diào)用 S c a l e ( ) 函數(shù)得出新的 p i x m a p調(diào)用 r e p a i n t ( ) 函數(shù)畫(huà)出新的 p i x m a pY e sN o圖 27 圖片縮小功能實(shí)現(xiàn)Fig. 27 Implementation of minifing function diagram中間位置。圖片在全屏模式下選擇放大時(shí)圖片也可以進(jìn)行上下或左右移動(dòng)顯示。對(duì)于圖片的顯示需要考慮的情況有是否是全屏模式,當(dāng)前的縮放倍數(shù)和當(dāng)前的旋轉(zhuǎn)角度,并需要根據(jù)判斷圖片是否移動(dòng)來(lái)對(duì)顯示邊界進(jìn)行檢測(cè)及計(jì)算。開(kāi)始以圖片原始大小顯示 , 圖片的像素寬高參數(shù) m i _ W i d t h S i z e 和m i _ H e i g h t S i z e 為原始圖片寬高值結(jié)束是否圖片比相框小N oY e s讀取圖片縮放參數(shù) m i _ C h a n g e S i z e , 把它與 m i _ W i d t h S i z e 、 m i _ H e i g h t S i z e相乘 , 把結(jié)果分別與原始圖片的寬高相除 , 得出縮放倍數(shù)讀取旋轉(zhuǎn)角度參數(shù) m i _ A n g l e將原始圖片按計(jì)算出的縮放比例縮放 , 并按 m i _ A n g l e 中的角度旋轉(zhuǎn)調(diào)用 r e p a i n t ( ) 函數(shù)將m Q P _ P i x m a p S c a l e d 在相框中顯示讀取用戶(hù)操作 , 改變對(duì)應(yīng)參數(shù)比較圖片大小與相框大小調(diào)整顯示圖片的像素寬高參數(shù)m i _ W i d t h S i z e 和 m i _ H e i g h t S i z e使之可以按原始比例大小在相框中最大化顯示將得到的圖片保存在m Q P _ P i x m a p S c a l e d 中圖 29 圖片顯示功能實(shí)現(xiàn)流程圖Fig. 29 Implementation of showing function diagram5 總結(jié)和展望本文圍繞用戶(hù)的基本需求,提出了一個(gè)基于嵌入式 Linux 操作系統(tǒng)和圖形用戶(hù)界面 QT 的嵌入式終端記事本和電子相冊(cè)設(shè)計(jì)方案。記事本對(duì)文件新建、打開(kāi)、刪除、提示保存等功能已經(jīng)基本完善。由于時(shí)間關(guān)系,本文僅實(shí)現(xiàn)了記事本和電子相冊(cè)的基本功能。 總體來(lái)說(shuō),本文所設(shè)計(jì)的記事本和電子相冊(cè)可以應(yīng)用到多種場(chǎng)合:公用多媒體終端、手機(jī)、PDA 等小型或手持型嵌入式設(shè)備。Reilly Media, Inc 2nd edition January 23. M. Tim Jones GNU/Linux Application Programming (Programming Series) Charles River Media 1 edition April 3, 2022,276-28924. Steve mcconnell Code Complete: A Practical Handbook of Software Construction Microsoft Press 2nd edition July 7 2022, 234-24525. Jonathan Corbet,Alessandro Rubini,Greg Koah Device D 2022致 謝首先,我要對(duì)我的導(dǎo)師王建勇老師表示衷心的感謝。感謝所有教過(guò)我的大學(xué)老師,他們給我的關(guān)懷和幫助,我將永遠(yuǎn)銘記于心