【正文】
用戶在 PhlEditGroupForm 界面中編輯完組名后,點擊該界面上的【 Back】按鈕或者直接按下鍵盤上的【 F8】鍵即可實現(xiàn)保存功能。 ( 6) 保存功能 該功能將用戶新建 /修改的記錄或者組分別保存到 和 中。 若查找到記錄,則會將該記錄設(shè)置為當(dāng)前記錄,將該記錄打開以顯示其具體信息,并會彈出消息框提示用戶查找到記錄。 上述查詢方 法實現(xiàn)了記錄的動態(tài)查詢:用戶每輸入一個字符,程序就會自動在 mpQLV_PhoneList 中查詢是否有以用戶輸入的內(nèi)容開頭的字符串。若檢測到用戶輸入了查詢內(nèi)容,則向 SearchSlot( Qstring)發(fā)送信號 Find( Qstring)。此時,沒有對號碼的輸入進行限制。 按名字查詢:按此方式查詢時,用戶需要在 PhlPhoneListForm 界面的輸入框中輸入要查詢的名稱,查詢完成后點擊 PhlPhoneListForm 中的【 Ok】按鈕或者直接按下鍵盤上的 【 F7】鍵即可。 用戶可按三種方式進行查詢:快速查詢、按名字查詢、按號碼查詢。 用戶輸入新的群組名稱后點擊【 Ok】按鈕或者 直接按下鍵盤上的【 F6】鍵即可。 當(dāng)用戶在 PhlGroupListForm 中點擊【 Edit】或者直接按下鍵盤上的【 F7】鍵,. . 即可進入 PhlEditGroupForm 界面修改組名。 修改完成之后,用 戶可使用鼠標(biāo)點擊 PhlNewEditRecordForm 中的【 Save】按鈕或者直接按下鍵盤上的【 F6】鍵進行保存,并且回到 PhlPhoneListForm 界面。此時,程序會將用戶所選擇的記錄信息寫入到PhlNewEditRecordForm 界面的相應(yīng)輸入框,用戶可根據(jù)需要修改其中的任何內(nèi)容。 ( 3) 修改記錄功能 此功能允許用戶修改已存在記錄的任何信息。 當(dāng)用戶在 PhlGroupListForm 中點擊【 New】或者直接按下【功能鍵】(鍵盤上的【 F6】鍵),即可進入 PhlEditGroupForm 界面新建群組。一直等待,直到用戶輸入數(shù)字。 新建記錄功能中同時附加了輸入限制功能。 當(dāng)用戶將聯(lián)系人的信息輸入完畢之后,即可點擊 PhlNewEditRecordForm 界面中的【 Save】按鈕或者直接按下【功能鍵】(鍵盤上的【 F6】鍵)保存新建的記錄,并返回到 PhlPhoneListForm 界面。 ( 9) 有退出功能,每一個界面的退出功能均使當(dāng)前界面返回到文件列表界面 4. 通訊錄功能描 述 ( 1) 新建記錄功能 此功能允許用戶添加任意個新的聯(lián)系人記錄。 ( 7) 當(dāng)顯示功能選項菜單時,彈出功能選項的界面窗體變暗,表示禁用狀態(tài)。 可以刪除當(dāng)前打開的文件。 ( 5) 刪除記事本文件: 刪除文件前提示是否確定刪除文件,根據(jù)選擇來確定是否刪除文件。 關(guān)閉已經(jīng)打 開的記事本文件時,如果內(nèi)容被修改則提示是否保存修改后的內(nèi)容。 ( 4) 打開記事本文件: 記事本文件打開界面根據(jù)記事本文件內(nèi)容顯示水平和垂直滾動條。 新建記事本內(nèi)容不為空時,能夠自動保存記事本文件。 記事本文件的編輯區(qū),以屏幕的右邊框為界,到達右邊框時自動換行。 如果文件內(nèi)容多于 15個字符,則命名方式為:保存文件的時間 +兩個空格 +文件內(nèi)容 +省略號。即列表條目可循環(huán)顯示。 選擇的文件是列表中的第一個文件時,按方向鍵的向上鍵時,顯示列表的最后一個文件。 3. 記事本功能描述 ( 1) 顯示所有記事本文件列表: 當(dāng)文件數(shù)量多于一屏的時候,出現(xiàn)縱向滾動條。由于模塊文件夾不能被更改的,如果在第一級目錄時的操作選項只包括:“打開”和“查找”;非第一級目錄且當(dāng)前目錄為空時的操作選項包括:“新建文件夾”和“查找”;其他情況下的操作選 項包括:“打開”、“新建文件夾”、“刪除”、“重命名”、“查找”。 ( 3) 文件管理 進入文件管理后直接顯示模塊文件夾所在路徑的各個文件夾的界面,默認(rèn)的. . 焦點在第一個元素(元素可為文件夾或文件)上,方向鍵可以控制焦點的移動(左右鍵控制焦點左右移動、上下鍵控制焦點上下移動),此時只有記事本、播放器、電子相冊這三個文件夾。 ( 2) 語言切換 語言切換界面可選擇中英日文顯示,系統(tǒng)默認(rèn)采用英文顯示,打開語言切換界面時當(dāng)前焦點停留在默認(rèn)語言選項上。 ( 1) 主題轉(zhuǎn)換 主題切換界面包含三種主題( BlueStyle、 YellowStyle、 RedStyle),第一次使用時默認(rèn)采用 BuleStyle 主題,打開主題切換界面時當(dāng)前的焦點停留在當(dāng)前所用主題的選項上。同樣單擊正中按鈕,也可響應(yīng)對應(yīng)功能窗口?!竟δ堋挎I按下,響應(yīng)正中功能按鈕,打開功能窗口,覆蓋整個主界面。鍵盤方向鍵右鍵按下一次,所有按鈕正向移動到下個按鈕的位置,左鍵按下一次,所有按鈕逆向移動到上個按鈕的位置,如此循環(huán)。最下面按鈕變換,正中按鈕也跟著變化,正中按鈕變化后有動 態(tài)顯示效果(縮放 1次)。通過使用外圍輸入設(shè)備控制功能按鈕能左右循環(huán)移動,交換位置并重新設(shè)置對應(yīng)大小的圖標(biāo)。各功能按鈕的大小左右對稱,最上面按鈕最小,向下逐漸變大至最下面,正中按鈕最大。 2. 支持瀏覽中英文網(wǎng)頁 (七) 電子相冊 1. 設(shè)計開發(fā)電子相冊窗口及控件 2. 能夠瀏覽 jpg、 png 及 gif 格式的圖片 3. 支持圖片的放大縮小 4. 支持圖片旋轉(zhuǎn) 5. 支持幻燈片模式顯示圖片 6. 支持文件管理 . . 三 .詳細(xì) 設(shè)計 (一) 功能描述 1. 主 界面功能描述 ( 1) 主界面,主要是作為進入各個功能模塊的起點,提供調(diào)用各模塊的一個平臺,使各模塊結(jié)合在一起形成一個整體。 圖 11 信號和槽機制 (六) 軟硬件環(huán)境支持 硬件: Pentium 4 CPU RAM 操作系統(tǒng) :Red Hat Linux 編輯工具: Source Insight 編譯器: 依賴庫: QT/X11 代碼管理: CVS 文檔管理: VSS 其他工具: Xming、 putty 、 JUDE、 Visio 第三方軟件支持: Mplayer, Konqueror . . 二 .功能需求 基于 QT的嵌入式終端界面開發(fā),主要的開發(fā)內(nèi)容包括: 主 界面開發(fā)、系統(tǒng)管理開發(fā)、記事本開發(fā)、通訊錄開發(fā)、視頻 /音頻播放器開發(fā)、瀏覽器開發(fā)以及電子相冊開發(fā)七個模塊。 如果一個類要使用信號與槽機制,它就必須是從 QObject 或 QObject 的子類繼承,而且類的定義必須加上 Q_OBJECT 宏。信號與插槽機制并不要求類之間互相知道細(xì)節(jié),這樣就可以相對容易的開發(fā)出代碼可高重用的類。信號與槽的連接原理如圖 所示。例如一個按鈕被點擊時會激發(fā)一個“ clicked”信號。 Qt 的信號與插槽機制是不同的。 在以前,當(dāng)我們使用回調(diào)函數(shù)機制來把某段響應(yīng)代碼和一個按鈕的動作相關(guān)聯(lián)時,我們通常把那段響應(yīng)代碼寫成一個函數(shù),然后把這個函數(shù)的地址指針傳給按鈕,當(dāng)那個按鈕被按下時,這個函數(shù)就會被執(zhí)行。大部分情況下,我們希望不同類型的對 象之間能夠進行通信。圖形用戶接口的應(yīng)用需要對用戶的動作做出響應(yīng)。 5. 用 make 命令生成可執(zhí)行的二進制代碼文件;由于使用 tmake 生成 Makefile 文件,當(dāng)需要的時候,編譯規(guī)則中包含調(diào)用 moc,自動地被連編系統(tǒng)調(diào)用,不需要手動調(diào)用。 4. moc(元對象編譯器 )用來解析一個 C++文件中的類聲明并且生成初始化對象的C++代碼。 . . 2. Uic(User Interface Compiler)是從 XML 文件生成代碼的用戶界面編譯器,用來將 文件生成 和 文件 (命令如 : uico ),但生成的這兩個文件不是標(biāo)準(zhǔn)的純 C++代碼,通常稱為 Qt 的 C++擴展,因為 Qt 的對象間中運用了信號 /槽的通信機制,在文件中用 Q_ OBJECT 宏來標(biāo)識。因此我們將首先在 PC 環(huán)境下進行 Qt 圖形界面的開發(fā),然后在 Qt/Embedded系統(tǒng)下進行編譯運行,具體步驟大致如下: 1. Qt Designer 是設(shè)計窗口組件的應(yīng)用程序,在安裝 Qt 的 bin 目錄下鍵入 ./designer 將啟動一個包含很多 Qt 組件的可視化界面。同樣。在新的平臺上經(jīng)過重新編譯和連接便能運行于該新平臺上。 Qt所有平臺的 API 是一致的。 (三) 開發(fā)語言: C++ 由于 Qt是一個跨平臺的 C++圖 形用 戶 界面 庫 , 在開發(fā)過程中都是借用 QT 中的類庫進行開發(fā)。 Qt API和開發(fā)工具對所有支持平臺都是一致的,從而可以進行獨立于平臺的程序開發(fā)和配置。人們所熟知的 Linux 下面的 KDE 環(huán)境就是基于 Qt開發(fā)而成的, Qt 支持 Unix 和 Linux 系統(tǒng),還支持 Windows 平臺。在我國, Qt 的發(fā)展也有星星之火可以燎原之勢。 (二) 開發(fā)工具: Qt Designer 、 Qt Linguist 、 Source Insight 隨著通信行業(yè)的迅猛發(fā)展,移動手 持設(shè)備必將成為人們工作、學(xué)習(xí)和生活的主流,用 Qt設(shè)計移動手持設(shè)備的 GUI 有著得天獨厚的優(yōu)勢。 關(guān) 鍵 詞 Linux, 嵌入式系統(tǒng) , Qt/X11, Qt Designer, Mplayer, slave 模式 , Konqueror . . Abstract With the rapid development of IT industry, information industry, and home appliance industry, embedded system is one of the most popular concept now. Embedded hardware and software technology is also undergoing profound changes. Embedded products are developing from single function, simple interface to multifunctional, beautiful and friendly interactive interface. More and more embedded systems, including highend mobile phone, PDA, smart home appliances, car navigation systems and so on request for fullfeatured Web browser, as well as a variety of entertainment features, it is clear that without the support of a highperformance GUI, these features are not available. This work will adopt the Linux + Qt to plete the embedded terminal interface development. First of all, understanding of embedded application development process on linux is necessary, then I will use the principles of software engineering to make a requirement analysis, the Qt Designer is used to design interface. The system designs and develops a plete embedded device interface using the phone interface as a reference, including the main interface, notebook, address book, audio / video player, browser, electronic albums. At the same time through the system management to manage all the corresponding documents, as well as the theme package and language switching. The emphasis is put on interface development, the player module will be realized by adopting the slave mode of the Opensource player Mplayer and the browser will be implemented by transplanting the core of the opensource browser Konqueror. Keywords Linux, Embedded System, Qt/X11,