在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于Qt的嵌入式Linux通訊簿程序設(shè)計

            基于Qt的嵌入式Linux通訊簿程序設(shè)計

            作者: 時間:2018-08-28 來源:網(wǎng)絡(luò) 收藏

            摘 要: 隨著系統(tǒng)的發(fā)展,在Linux 下使用Qt 開發(fā)應(yīng)用程序是圖形用戶界面( GUI) 系統(tǒng)應(yīng)用研究的重點。通過一個通訊簿程序的設(shè)計,給出了基于Qt 的嵌入式Linux 程序開發(fā)的關(guān)鍵技術(shù),包括QtDesigner、信號與槽機制的使用、程序主要功能代碼的實現(xiàn)以及程序開發(fā)的整體過程。

            本文引用地址:http://www.biyoush.com/article/201808/387883.htm

            Linux 操作系統(tǒng)具有開放的源碼、高效穩(wěn)定的內(nèi)核、良好的開發(fā)環(huán)境以及支持多種硬件平臺的特點,且具有可配置性和模塊化的特點; Qt 是一個面向?qū)ο蟮闹С侄嗖僮飨到y(tǒng)平臺的應(yīng)用程序開發(fā)框架,它采用了一種獨有的Signal2Slot (信號與槽) 的對象間通信機制,以代替?zhèn)鹘y(tǒng)的不安全的回調(diào)技術(shù)。Qt 的自由版開放了源代碼,因此開發(fā)人員在Linux 下使用Qt 進(jìn)行嵌入式系統(tǒng)開發(fā)是非常理想的選擇。

            從目前國內(nèi)嵌入式系統(tǒng)( Embedded system) 的開發(fā)情況來看,在Linux 下使用Qt 來開發(fā)嵌入式GUI 程序還不是很多,且相關(guān)中文資料也較少。

            究其原因,主要是由于Qt 歷史較短,其比較穩(wěn)定的版本是在2002 年之后才逐漸被國內(nèi)工程人員使用,雖然功能強大,但中文文檔匱乏,延緩了在國內(nèi)的普及。另外一個主要原因是雖然嵌入式技術(shù)隨著半導(dǎo)體技術(shù)的進(jìn)步得到長足的發(fā)展,但較為成熟的嵌入式操作系統(tǒng)及支持嵌入式操作系統(tǒng)的平臺是在近幾年才逐步發(fā)展起來,而Qt 需要在操作系統(tǒng)的支持下才可使用。文獻(xiàn)[ 2 ]~[ 4 ]從不同的方面闡述了Linux 下使用Qt 進(jìn)行嵌入式開發(fā)的一般過程和特點,但沒有對其關(guān)鍵技術(shù)及程序開發(fā)實現(xiàn)過程進(jìn)行具體的說明。為此,筆者通過通訊簿程序的設(shè)計,從工程文件的建立到可執(zhí)行程序的生成,詳細(xì)給出了其中關(guān)鍵技術(shù)的實現(xiàn)及關(guān)鍵代碼的運用。

            1 基于Qt 的嵌入式Linux 通訊簿程序設(shè)計

            在嵌入式開發(fā)之前,首先要搭建好開發(fā)環(huán)境。 正確設(shè)置編譯器、Qt 及Qt E 環(huán)境變量對后續(xù)程序編譯過程至關(guān)重要。本設(shè)計使用的嵌入式處理器為三星公司的基于ARM 920 T 的S3C2410X芯片,最高工作頻率203 MHz. 操作系統(tǒng)為REDHA T L INUX 910 , 內(nèi)核版本214118. 串口通信程序為MINICOM , 使用Tro11 Tech 公司發(fā)布的自由版: qt2x1122. 3. 2 ,qt2embedded22. 3. 10 , 使用arm2linux2gcc231411 編譯器。

            通訊簿程序主要記錄聯(lián)系人的姓名、電話、郵件地址及地址信息,具有新建、編輯、刪除、查詢聯(lián)系人信息等功能。

            1.1 生成工程文件

            通常一個應(yīng)用程序?qū)?yīng)一個工程。工程文件的作用是管理當(dāng)前項目中所有的文件及其關(guān)系,可以使用progen 工具來生成程序的工程文件:

            progen -t app1 t -o AddressBook. pro

            生成的AddressBook1pro 工程文件并不完整,還需后續(xù)添加工程所包含的頭文件、源文件等信息。

            1.2 使用QtDe signer 設(shè)計程序窗體

            QtDesigner 是Qt 的一個可視化的程序界面設(shè)計工具,使用它來設(shè)計程序的界面非常方便,從而開發(fā)者可以專注于程序功能的實現(xiàn)。通訊簿主窗口包括聯(lián)系人信息查詢、新建、編輯及刪除功能部件。查詢功能使用2 個TextLable , 1 個LineEdit ,1 個ComboBox 及1 個PushButton 部件,其中ComboBox 可以設(shè)置NAME , Telep hone , Email ,Address 4 種查詢方式。新建聯(lián)系人可以單獨彈出新建窗口來實現(xiàn),使用4 個TextLable 及4 個LineEdit 部件。編輯和刪除聯(lián)系人由1 個ListView 和2 個PushBut ton 部件構(gòu)成,其中ListView 包括1 個List 和4 個Column ( 包括Name , Telep hone ,Email ,Address)。

            在Qt 中,事件驅(qū)動通過Signal2Slot (信號和槽) 機制實現(xiàn)。Signal 主要是各可視化組件產(chǎn)生的事件,這些事件通常由Qt 控件預(yù)定義,如按鈕單擊事件clicked 等。Slot 是對某個事件的處理方法,它也屬于類的成員函數(shù),其編寫和普通成員函數(shù)類似。當(dāng)需要處理某組件的Signal 事件并要求把定義好的Slot 作為響應(yīng)事件的方法時,只要在實現(xiàn)文件中使用connect 函數(shù)把Signal 和指定的Slot 連接起來即可。當(dāng)對象改變其狀態(tài)時,信號被發(fā)送,對象不關(guān)心有沒有其它對象接收到這信號,可以將信號和槽通過connect 函數(shù)任意相連。信號與槽的連接原理如圖1 所示。

            圖1 信號與槽連接抽象圖

            以下是通訊簿程序主窗口5 個按鈕的Signal2Slot 的connect 代碼:

            connect (add ,SIGNAL (clicked () ) ,this , SLOT(addSlot) ) ) ;

            connect (edit , SIGNAL (clicked () ) ,this , SLOT(editSlot) ) ) ;

            connect (del , SIGNAL (clicked () ) ,this , SLOT(delSlot) ) ) ;

            connect (exit , SIGNAL (clicked () ) ,this , SLOT(exitSlot) ) ) ;

            connect ( search , SIGNAL (clicked ( ) ) , this , SLOT ( searchSlot) ) ) ;

            窗口(如圖2 及圖3 所示) 設(shè)計完成后,將通訊簿主窗口及新建聯(lián)系人窗口分別保存為AddressBook. ui 和New. ui 界面文件。

            圖2 通訊簿主窗口

            圖3 新建聯(lián)系人窗口

            1.3 生成窗體類的頭文件和源文件

            使用Qt 提供的uic 工具通過界面文件AddressBook.ui 來生成AddressBook. h 文件和AddressBook.cpp 文件(同樣,使用uic 工具通過界面文件New.ui 來生成New.h 和New.cpp 文件) :

            uic -o AddressBook. h AddressBook. ui

            uic -o AddressBook. cpp -impl AddressBook. h

            AddressBook. ui

            通訊簿要實現(xiàn)新建、編輯、刪除、查詢聯(lián)系人信息等功能還需要在AddressBook1cpp 文件里添加相應(yīng)的功能實現(xiàn)代碼。

            為實現(xiàn)新建聯(lián)系人功能,在文件AddressBook1cpp 中定義一個AddressBook 類的成員函數(shù):

            void AddressBook∶∶addSlot ()


            上一頁 1 2 下一頁

            關(guān)鍵詞: 嵌入式

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉