freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于qt的嵌入式終端應(yīng)用程序開發(fā)設(shè)計(jì)---記事本和電子相冊開發(fā)(編輯修改稿)

2024-12-23 21:48 本頁面
 

【文章內(nèi)容簡介】 ,業(yè)界已經(jīng)達(dá)成共識:即嵌入式 linux 是大勢所趨,其巨大的市場潛力與醞釀的無限商機(jī)必然會吸引眾多的廠商進(jìn)入這一領(lǐng)域。 Qt開發(fā)工具簡介 Qt主要特性 Qt 是一個(gè)跨平臺的 C++圖形用 戶界面庫,由挪威 TrollTech 公司開發(fā),目前包括Qt/X1基于 Framebuffer 的 Qt/Embedded、快速開發(fā)工具 Qt Designer 以及國際化工具Qt Linguist 等。人們所熟知的 Linux下面的 KDE 環(huán)境就是基于 Qt開發(fā)而成的。 Qt支持Unix和 Linux系統(tǒng)以及 Windows 系統(tǒng)。 Qt 的主要特點(diǎn)有: 面向?qū)ο螅? 很容易擴(kuò)展, 并且允許真正的組件編程; Qt對各個(gè)模塊進(jìn)行了良好的封裝,使各模塊可重用性較好;優(yōu)良的跨平臺特性, 使用 Qt 類編寫的程序可以實(shí)現(xiàn) “一次編碼,到處編譯 ”, 極大的降低了跨平臺開發(fā)的難度(丁丁等, 2020);構(gòu)件支持, 對于對象間通信, Qt 沒有采用函數(shù)回調(diào)的方法,而是采用了一種全新并且可選的被稱為 “信號與槽 ” 的對象間通信機(jī)制,通過一個(gè)對象信號的發(fā)射,另一個(gè)槽函數(shù)的響應(yīng),使各個(gè)對象之間的通信安全而且高效。 Qt 的這些特點(diǎn)使它非常適合于真正的構(gòu)件編程, 同時(shí)使各個(gè)組件之間的協(xié)同工作變得十分簡單,并且 Qt是直接基于 Xlib 的,不依賴 Motif 工具包, 所以它的執(zhí)行效率比一般的基于平臺的代碼的執(zhí)行效率要高。 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 5 Qt編程機(jī)制簡介 ( 1) Qt 系統(tǒng)的信號與槽機(jī)制簡介 信號 /槽機(jī)制是 Qt 的一個(gè)中心特征并且也許是 Qt 與其它工具包的最不相同的部分。在圖形用戶界面編程中,我們經(jīng)常希望一個(gè)窗口部件的一個(gè)變化被通知給另一個(gè)窗口部件 (張娟,張雪蘭 ,2020)。更一般地,我們希望任何一類的對象可以和其它對象進(jìn)行通訊。 較老的工具包使用一種被稱作回調(diào)的通訊方式來實(shí)現(xiàn)同一目的。回調(diào)是指一個(gè)函數(shù)的指針,所以如果你希望一個(gè)處理函數(shù)通知你一些事件,你可以把另一個(gè)函數(shù)(回調(diào))的指針傳遞給處理函數(shù)。處理函數(shù)在適當(dāng)?shù)臅r(shí)候調(diào)用回調(diào)(倪繼利, 2020)?;卣{(diào)有兩個(gè)主要缺點(diǎn)。首先他們不是類型安全的。我們從來都不 能確定處理函數(shù)使用了正確的參數(shù)來調(diào)用回調(diào)。因此容易造成進(jìn)程崩潰,另外一個(gè)問題是,回調(diào)這種方式緊緊的綁定了圖形用戶接口的功能元素,因而很難把開發(fā)進(jìn)行獨(dú)立的分類。 Qt 的信號與槽機(jī)制是不同的。 Qt 的信號與槽均以函數(shù)形式出現(xiàn), Qt 的窗口部件有很多預(yù)定義的信號,但我們也可以通過繼承來加入我們自己的信號。槽就是一個(gè)可以被調(diào)用處理特定信號的函數(shù)。 Qt 的窗口部件有很多預(yù)定義的槽,但是通常的習(xí)慣是你可以加入自己的槽,這樣你就可以處理你所感興趣的信號。我們可以用 connect()函數(shù)對需要的信號和槽進(jìn)行連接。當(dāng)對象的內(nèi)部狀態(tài) 發(fā)生改變,信號就被發(fā)射。從某種意義上講,它們也許對外面的世界感興趣。這就是所有的對象通訊時(shí)所做的一切。它不知道也不注意無論有沒有東西接收它所發(fā)射的信號。當(dāng)一個(gè)信號被發(fā)射,它所連接的槽會被立即執(zhí)行,就像一個(gè)普通函數(shù)調(diào)用一樣(見圖 1)。信號 /槽機(jī)制完全不依賴于任何一種圖形用戶界面的事件回路。當(dāng)所有的槽都返回后發(fā)射的信號也將返回。信號與插槽機(jī)制并不要求類之間互相知道細(xì)節(jié),這樣就可以相對容易的開發(fā)出代碼可高重用的類 (Matthias Dalheimer,2020)。 信號和槽的機(jī)制是類型安全的:一個(gè)信號的簽名必須 與它的接收槽的簽名相匹配。(實(shí)際上一個(gè)槽的簽名可以比它接收的信號的簽名少,因?yàn)樗梢院雎灶~外的簽名。)因?yàn)楹灻且恢碌?,編譯器就可以幫助我們檢測類型不匹配。它以警告的方式報(bào)告類型錯(cuò)誤,而不會使系統(tǒng)產(chǎn)生崩潰。信號和槽是寬松地聯(lián)系在一起的:一個(gè)發(fā)射信號的類不用知道也不用注意哪個(gè)槽要接收這個(gè)信號 (Johan Thelin,2020)。 Qt 的信號和槽的機(jī)制可以保證如果你把一個(gè)信號和一個(gè)槽連接起來,槽會在正確的時(shí)間使用信號的參數(shù)而被調(diào)用。信號和槽可以使用任何數(shù)量、任何類型的參數(shù)。它們是完全類型安全的:不會再有回調(diào)核心 轉(zhuǎn)儲 (core dump)。 你可以把許多信號和你所希望的單一槽相連,并且一個(gè)信號也可以和你所期望的許多槽相連。把一個(gè)信號和另一個(gè)信號直接相連也是可以的。(這時(shí),只要第一個(gè)信號被發(fā)射時(shí),第二個(gè)信號立刻就被發(fā)射。) 總體來看,信號和槽構(gòu)成了一個(gè)強(qiáng)有力的組件編程機(jī)制。 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 6 如果一個(gè)類要使用信號與槽機(jī)制,它就必須是從 QObject 或 QObject 的子類繼承,而且類的定義必須加上 Q_OBJECT 宏。 signals、 slots 和 emit 是 Qt 特有的關(guān)鍵字,分別用來表示信號、槽、和發(fā)送信號,移除這些關(guān)鍵字和預(yù)處理程序,就可 以使用標(biāo)準(zhǔn)的 C++編譯器。槽同其他函數(shù)一樣也具有訪問權(quán)限,只是槽的訪問權(quán)限決定了誰可以和 它 相 連 , 如 一 個(gè) public slots: 包 含 了 任 何 信 號 都 可 以 相 連 的 槽 (Andrew Krause,2020) 。一個(gè) protected slots:包含了只有這個(gè)類和它的子類的信號才能連接的槽。這就是說這些槽只是類的實(shí)現(xiàn)的一部分,而不是它和外界的接口。 一個(gè) private slots:包含了只有這個(gè)類本身的信號可以連接的槽,甚至它的子類都沒有獲得連接的權(quán)利。 圖 1 信號和槽的 連接原理圖 Fig. 1 Signal and slot connection scheme ( 2) Qt 元對象系統(tǒng) Qt 中的元對象系統(tǒng)是用來處理對象間通訊的信號 /槽機(jī)制、運(yùn)行時(shí)的類型信息和動態(tài)屬性系統(tǒng)。它基于下列三類: QObject 類、類聲明中的私有段中的 Q_OBJECT 宏、元對象編譯器( moc)。 moc 讀取 C++源文件。如果它發(fā)現(xiàn)其中包含一個(gè)或多個(gè)類的聲明中含有Q_OBJECT 宏,它就會給含有 Q_OBJECT 宏的類生成另一個(gè)含有元對象代碼的 C++源文件。這個(gè)生成的源文件可以被類的源文件包含( include)到或者和這個(gè)類的實(shí)現(xiàn)一起編譯和連接。 除了提供對象間通訊的信號和槽機(jī)制之外(介紹這個(gè)系統(tǒng)的主要原因), QObject中的元對象代碼實(shí)現(xiàn)其它特征: ( 1) className()函數(shù)在運(yùn)行的時(shí)候以字符串返回類的名稱,不需要 C++編譯器中的本地運(yùn)行類型信息( RTTI)的支持。 ( 2) inherits()函數(shù)返回這個(gè)對象是否是一個(gè)繼承于 QObject 繼承樹中一個(gè)特定類的類的實(shí)例。 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 7 ( 3) tr()和 trUtf8() 兩個(gè)函數(shù)是用于國際化中的字符串翻譯。 ( 4) setProperty()函數(shù) 和 property()函數(shù),這 兩個(gè)函數(shù) 是 用來通過名稱動態(tài)設(shè)置和獲得對象屬性的。 ( 5) metaObject()函數(shù)返回這個(gè)類所關(guān)聯(lián)的元對象。 雖然使用 QObject 作為一個(gè)基類而不使用 Q_OBJECT 宏和元對象代碼是可以的,但是如果 Q_OBJECT 宏沒有被使用,那么這里的信號和槽以及其它特征描述都不會被提供。根據(jù)元對象系統(tǒng)的觀點(diǎn),一個(gè)沒有元代碼的 QObject 的子類和它含有元對象代碼的最近的祖先相同。舉例來說就是, className()將不會返回你的類的實(shí)際名稱,返回的是它的這個(gè)祖先的名稱。故強(qiáng)烈建議 QObject 的所有子類使用 Q_OBJECT 宏 ,而不管它們是否實(shí)際使用了信號、槽和屬性 (Jonathan Corbet, 2020)。 3 嵌入式終端應(yīng)用程序之記事本和電子相冊架構(gòu)設(shè)計(jì) 目前市場上嵌入式手持設(shè)備, 320*240 的解析度基本滿足了人們對顯示畫面大小及圖像清晰度的要求,逐漸占領(lǐng)了市場主流。故記事本和電子相冊界面大小設(shè)定 320*240,并且記事本和電子相冊均支持鍵盤控制操作和點(diǎn)擊( PC 機(jī)上鼠標(biāo)點(diǎn)擊,嵌入式設(shè)備的觸摸屏點(diǎn)擊)控制操作。特色是界面語言支持中文、英文、日文三種語言的顯示。 記事本架構(gòu)設(shè)計(jì) 記事本設(shè)計(jì)需求 記事本可以將目錄下的記事本文 件以文件名列表的形式顯示出來,并可以實(shí)現(xiàn)記事本文件的新建、打開、編輯和刪除等功能;記事本可以根據(jù)文件內(nèi)容的多少來實(shí)現(xiàn)文本的滾動顯示,并可以通過軟鍵盤對文本進(jìn)行編輯等。 ( 1) 文件列表功能:記事本的文件列表用于顯示記事本文件名,并且當(dāng)記事本文件名過長時(shí)進(jìn)行文件名長度顯示的控制。當(dāng)文件數(shù)目多于當(dāng)前界面顯示范圍,則出現(xiàn)上下方向的滾動條,可以向上或向下滾動顯示文件名。 ( 2) 文件名選中顯示功能:在文件列表上被選中的文件名高亮顯示。 ( 3) 新建文件功能:新建記事本文件時(shí),提示輸入文件名,如果沒有輸入文件名而選擇直接進(jìn)入文件編輯界面,系 統(tǒng)則提供默認(rèn)的文件名用于存儲文件。編輯新建文件時(shí),文件名在編輯界面上方顯示。 ( 4) 控制文本編輯格式功能:編輯文件時(shí),文本內(nèi)容輸入到當(dāng)前界面的右端邊界處自動換行,也可以利用鍵盤操作執(zhí)行換行動作。輸入的文本內(nèi)容多于當(dāng)前屏幕顯示范圍時(shí)出現(xiàn)縱向滾動條,隨著文本輸入滾動顯示內(nèi)容。保存文件后,文件名立即顯示在文件列表上。 ( 5) 打開文件功能:根據(jù)文件列表選擇打開指定的文件,打開指定文件時(shí),顯示打開文件的文件內(nèi)容在文件編輯界面上,文件內(nèi)容過多時(shí)可以滾動顯示,并在文件編輯界面的上方滾動顯示打開的文件的文件名。 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 8 ( 6) 文件內(nèi)容編輯和顯示功能 :在文件編輯界面上可以對文件的內(nèi)容進(jìn)行編輯和修改。如果文件內(nèi)容多于當(dāng)前屏幕顯示范圍的話,出現(xiàn)縱向滾動條,可以滾動顯示當(dāng)前文件的文件內(nèi)容。 ( 7) 打開下一個(gè)文件功能:在當(dāng)前打開文件列表界面,若選擇 “打開一個(gè)文件 ”功能,則顯示下一個(gè)文件的內(nèi)容在文件編輯區(qū)。 ( 8) 文件內(nèi)容修改提示功能:若在打開的文件中對其內(nèi)容進(jìn)行了修改,在關(guān)閉文件時(shí)將會提示文件的內(nèi)容已經(jīng)被修改的消息,用戶可選擇是否保存修改后的內(nèi)容。 ( 9) 刪除文件功能:可以在文件列表上對指定文件進(jìn)行刪除操作,也可以打開文件后,對打開的文件進(jìn)行刪除操作。選擇刪除文件操作時(shí),會出現(xiàn) 確定文件刪除的提示,如果此時(shí)放棄刪除操作,則文件不會被刪除,否則文件將會被徹底刪除,即從物理設(shè)備上被刪除。文件被刪除后,文件列表上該文件名被移除。 ( 10) 軟鍵盤輸入功能:軟鍵盤支持英文輸入, Cap 鍵支持大小寫英文切換,提供 Shift 鍵的上下字符切換功能, Enter 可以進(jìn)行回車換行,其 ESC 鍵執(zhí)行軟鍵盤退出功能。軟鍵盤上的按鍵與物理鍵盤的按鍵位置相對應(yīng)。 ( 11) 給用戶提供友好的圖形用戶界面,并合理安排界面元素布局, 使其交互性好且 方便用戶操作。 記事本界面設(shè)計(jì) 記事本主要界面設(shè)計(jì) : ( 1) 文件列表界面:如圖 2 所示,界面大小 為 320*240。界面上方提供記事本圖標(biāo)和記事本文字標(biāo)簽,中間的顯示區(qū)域顯示記事本文件列表。界面的最下方為兩個(gè)按鈕,左側(cè)的是功能按鈕,右側(cè)的是返回按鈕,此界面上分別標(biāo)記為 “Option”和 “Exit”。文件列表中文件以文件創(chuàng)建時(shí)間排序,將要進(jìn)行操作的文件名高亮顯示。 圖 2 文件列表界面 Fig. 2 File list interface 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 9 ( 2) 新建文件編輯界面:如圖 3 所示,界面大小為 320*240。界面上方顯示記事本圖標(biāo)和新建文件的文件名,如果沒有輸入文件名則不顯示 。中間的顯示區(qū)域?yàn)槲募庉媴^(qū),用于接收文本的輸入。界面的最下方左側(cè)為功能按鈕,右側(cè)的是返回按鈕,此界面上分別標(biāo)記為 “Option”和 “Save”。 圖 3 新建文件編輯界面 Fig. 3 New document editing interface ( 3) 打開文件內(nèi)容顯示界面:如圖 4 所示,界面大小為 320*240。界面上方顯示記事本圖標(biāo)和打開的文件的文件名,中間的顯示區(qū)域?yàn)槲募?nèi)容顯示區(qū),可以接受文本的編輯和修改。界面的最下方左側(cè)為功能按鈕,右側(cè)的是返回按鈕,此界面上 分別標(biāo)記為 “Option”和 “Back”。 圖 4 文件打開界面 Fig. 4 Documents open interface 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 10 記事本功能菜單設(shè)計(jì): 如圖 5 所示,記事本功能菜單大小要小于記事本主要界面的大小,根據(jù)具體條目的數(shù)量來調(diào)整為合適的大小。菜單上顯示可操作的功能選項(xiàng),并對選定的功能選項(xiàng)高亮顯示。界面的最下方左側(cè)為功能按鈕,右側(cè)的是返回按鈕,菜單中分別標(biāo)記為“Select”和 “Back”。 圖 5 功能菜單 Fig. 5 Function menu 記事本消息提示框設(shè)計(jì): 如圖 6 所示,消息提示框界面大小為 320*消息提示框的顯示區(qū)域顯示提示動畫和提示的內(nèi)容。界面的最下方左側(cè)為功能按鈕,右側(cè)的是返回按鈕,此界面中分別標(biāo)記為 “Yes”和 “No”。 圖 6 消息提示框 Fig. 6 Messagebox 華中農(nóng)業(yè)大學(xué)本科畢業(yè)論文(或設(shè)計(jì)) 11 相鄰兩個(gè)界面之間切換時(shí),若后出現(xiàn)的界面大小小于先出現(xiàn)的界面大小,則第一個(gè)界面顯示蒙版即表示為禁用狀態(tài),如圖 5 和圖 6。 記事本軟鍵盤界面設(shè)計(jì): 如圖
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1