版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、. . . . 38 / 43摘要隨著社會(huì)的發(fā)展,人們的通訊方式越來(lái)越多,不僅僅是寫信,發(fā),上網(wǎng)。手機(jī)的流行已成為了一種趨勢(shì)。同時(shí)手機(jī)的普與也給人們的生活帶來(lái)了很多的便利,如:可以隨時(shí)隨地連接英特網(wǎng),可以隨時(shí)和朋友,親人聯(lián)系,同時(shí)還能拍照,聽(tīng)歌,看文檔。同時(shí)也兼有計(jì)算器,手表,相機(jī)的功能?;贏rm-Linux平臺(tái)的模擬手機(jī)設(shè)計(jì)從理論上來(lái)說(shuō)具備基本的手機(jī)功能,能進(jìn)行通話,本管理,信息管理,MP3、MP4功能,具備記事本,計(jì)算器,圖片查看,歸屬地查詢等小功能,同是還能連接英特網(wǎng),實(shí)現(xiàn)了簡(jiǎn)單的游戲,特別的是此系統(tǒng)能實(shí)現(xiàn)跨平臺(tái)運(yùn)行,可以交叉編譯。如果能燒入開(kāi)發(fā)板上面,將能夠和手機(jī)媲美。同時(shí)它能運(yùn)行在
2、ARM9,ARM11等開(kāi)發(fā)板上面,進(jìn)行一系列的模擬實(shí)驗(yàn)。關(guān)鍵詞:Arm-Linux平臺(tái);模擬手機(jī)設(shè)計(jì);ARM9;ARM11AbstractWith the development of society, people's communication mode is more and more, just write, email, Internet access. The popular mobile phone has become a trend. Meanwhile the popularity of cell phone also give people life brough
3、t a lot of convenience, such as: connect the Internet can at any time anywhere, can at any time and friends, family contact, but also photos, music, see documents. Also with calculator, watches, the camera functions.Based on the Arm - Linux platform from theory for analog phones have the basic desig
4、n of the mobile communication function, can this management, telephone, information management, MP3, MP4 functionality, have notepad, calculator, picture viewer, number where inquiry on small function, is also can connect with the Internet, realized simple game, special is the system can realize cro
5、ss-platform operation, can cross-compiling. If can spread on development board, will be able to and cell phone rival. At the same time it can run on ARM9, such as ARM11 above development board, carries on a series of simulation experiment.Key words: arm-linux platform; analog phone design; arm9; arm
6、11目 錄摘要IAbstractII第1章緒論11.1引言11.2課題背景11.3研究方法21.4論文結(jié)構(gòu)說(shuō)明2第2章需求分析42.1系統(tǒng)功能分析42.2可行性分析4第3章概要設(shè)計(jì)63.1系統(tǒng)目標(biāo)63.2系統(tǒng)模塊圖63.3系統(tǒng)功能流程圖7第4章數(shù)據(jù)庫(kù)設(shè)計(jì)84.1數(shù)據(jù)庫(kù)需求分析84.2數(shù)據(jù)庫(kù)概要設(shè)計(jì)84.3數(shù)據(jù)庫(kù)物理設(shè)計(jì)10第5章系統(tǒng)詳細(xì)設(shè)計(jì)115.1登錄詳細(xì)設(shè)計(jì)115.2通訊管理功能詳細(xì)設(shè)計(jì)135.3情景設(shè)置145.4多媒體175.5小工具185.6英特網(wǎng),地圖搜索235.7娛樂(lè)235.8我的收藏255.9客戶服務(wù)26第6章環(huán)境搭建與調(diào)試286.1開(kāi)發(fā)環(huán)境286.2環(huán)境的配置28第7章開(kāi)發(fā)技術(shù)
7、、平臺(tái)簡(jiǎn)介317.1開(kāi)發(fā)技術(shù)簡(jiǎn)介317.2開(kāi)發(fā)平臺(tái)簡(jiǎn)介33第8章總結(jié)與展望35主要參考資料36致37第1章 緒論1.1 引言手機(jī)的質(zhì)量是一個(gè)手機(jī)廠商的生命線,如果沒(méi)有一個(gè)讓人們用著放心,用著滿意的手機(jī)質(zhì)量,那么這個(gè)手機(jī)廠商將無(wú)立身之地。當(dāng)然這里所說(shuō)的手機(jī)質(zhì)量包括硬件和軟件兩方面。因此,提高手機(jī)的質(zhì)量是一個(gè)手機(jī)廠商的重中之重?;贏rm-Linux平臺(tái)的模擬手機(jī)設(shè)計(jì)從理論上來(lái)說(shuō)具備手機(jī)的基本功能。同時(shí)此系統(tǒng)能實(shí)現(xiàn)跨平臺(tái)運(yùn)行,可以交叉編譯。同是也能在開(kāi)發(fā)板上進(jìn)行一系列的模擬實(shí)驗(yàn)。1.2 課題背景1.2.1 國(guó)外研究現(xiàn)狀目前,全球手機(jī)廠商的競(jìng)爭(zhēng)已是異常的激烈,然而擁有一個(gè)好的手機(jī)操作系統(tǒng)已成為各大廠
8、商的首選。根據(jù)市場(chǎng)調(diào)查公司Ovum表示,手機(jī)制造商陸續(xù)采用含有先進(jìn)的圖形與影音處理能力高效能硬件,逐漸從ARM-11系列處理器過(guò)度到ARM Cortex A8,且Qualcomm(高通)Snapdragon芯片也正在緊鑼密鼓的籌備中。相對(duì)于Symbian和Windows Mobile,現(xiàn)狀登場(chǎng)的Android要更顯年輕。Android是基于Linux核的軟件平臺(tái)和操作系統(tǒng),早期由Google開(kāi)發(fā),后由開(kāi)放手機(jī)聯(lián)盟Open Handset Alliance開(kāi)發(fā)。它采用了軟件堆層的架構(gòu),主要分為三部分。低層以Linux核工作為基礎(chǔ),只提供基本功能,其他的應(yīng)用軟件則由各公司自行開(kāi)發(fā),以Java作為編
9、寫程序的一部分1.2.2 國(guó)研究現(xiàn)狀國(guó)手機(jī)市場(chǎng)熱點(diǎn)頻涌,產(chǎn)銷量邁上新的臺(tái)階。彩屏手機(jī)、彩信手機(jī)、智能手機(jī)已逐漸成為市場(chǎng)主流,高像素照相手機(jī)、運(yùn)營(yíng)商定制手機(jī)、雙模雙卡手機(jī)開(kāi)始紛紛登臺(tái)亮相。與此同時(shí),國(guó)手機(jī)產(chǎn)銷量經(jīng)過(guò)二季度的短暫徘徊,三季度又出現(xiàn)恢復(fù)性增長(zhǎng),目前已占得全球三分天下。隨著國(guó)外手機(jī)系統(tǒng)的出現(xiàn),中國(guó)移動(dòng)OMS智能系統(tǒng)應(yīng)運(yùn)而生,OMS是中國(guó)移動(dòng)深度定制的手機(jī)操作系統(tǒng),該系統(tǒng)是基于Linux核、采用Android源代碼進(jìn)行重新開(kāi)發(fā)的一套系統(tǒng),在用戶界面以與功能上與此前的Google手機(jī)有很大不同。在功能方面,OMS深度集合了中國(guó)移動(dòng)現(xiàn)有的各項(xiàng)業(yè)務(wù),包括飛信、快訊、139、移動(dòng)夢(mèng)網(wǎng)等數(shù)據(jù)服務(wù)。
10、在用戶體驗(yàn)方面,OMS同樣也汲取了iPhone,Android,Black Berry等多種移動(dòng)終端的優(yōu)勢(shì),并結(jié)合中國(guó)人自己的行為習(xí)慣和喜好方式,設(shè)計(jì)出了完全區(qū)別于Android的用戶界面,其最大的特點(diǎn)就是采用大屏觸摸式設(shè)計(jì)風(fēng)格。1.3 研究方法廣泛搜集研究資料,參考國(guó)手機(jī)系統(tǒng)設(shè)計(jì)的成果,分析他人的設(shè)計(jì)方法和思想,對(duì)該系統(tǒng)的工作模式與其體系結(jié)構(gòu)進(jìn)行探討,對(duì)系統(tǒng)進(jìn)行概要設(shè)計(jì)。認(rèn)真請(qǐng)教導(dǎo)師,在導(dǎo)師的指導(dǎo)下利用在大學(xué)所學(xué)的知識(shí)認(rèn)真仔細(xì)做好需求分析,做好詳細(xì)設(shè)計(jì)的準(zhǔn)備。應(yīng)用相關(guān)的理論、技術(shù)編碼,如Sqlite數(shù)據(jù)庫(kù)理論,C+語(yǔ)法,Qt界面布局,交叉編譯。最后運(yùn)用構(gòu)建知識(shí)將程序移植到mini2440上進(jìn)
11、行測(cè)試,并優(yōu)化性能。開(kāi)發(fā)過(guò)程中主要用到的開(kāi)發(fā)工具有QT Creator4.6,ARM9,超級(jí)終端,設(shè)備驅(qū)動(dòng)等。該系統(tǒng)預(yù)期實(shí)現(xiàn)的功能有:登陸功能,通信錄管理,通話記錄,信息服務(wù),情景設(shè)置,多媒體,小工具,娛樂(lè),客戶服務(wù),谷歌地圖。1.4 論文結(jié)構(gòu)說(shuō)明本文從軟件開(kāi)發(fā)的角度并結(jié)合詳細(xì)的圖示和相關(guān)關(guān)鍵代碼闡述了關(guān)于開(kāi)發(fā)基于Arm-Linux平臺(tái)的模擬手機(jī)設(shè)計(jì)的背景、意義、系統(tǒng)的需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),并對(duì)數(shù)據(jù)庫(kù)進(jìn)行了分析,從數(shù)據(jù)庫(kù)的用戶需求,概要設(shè)計(jì),E-R圖設(shè)計(jì),邏輯設(shè)計(jì),物理設(shè)計(jì),都進(jìn)行了詳細(xì)的闡述。一個(gè)好的軟件開(kāi)發(fā)過(guò)程是漫長(zhǎng)的,本系統(tǒng)從設(shè)計(jì)到完成編碼用了差不多三個(gè)月的時(shí)間,由于本人軟件工程
12、知識(shí)理解有限,難免會(huì)在使用的過(guò)程中產(chǎn)生開(kāi)發(fā)過(guò)程中隱藏的問(wèn)題,本文提供了該軟件的基本運(yùn)行,測(cè)試環(huán)境的搭建和調(diào)試方法,并提供了相關(guān)說(shuō)明。由于作者水平和經(jīng)驗(yàn)的限制,加之編寫時(shí)間倉(cāng)促,本文可能存在不當(dāng)之處,敬請(qǐng)批評(píng)指正。第2章 需求分析2.1 系統(tǒng)功能分析基于Arm-Linux平臺(tái)的模擬手機(jī)設(shè)計(jì)系統(tǒng)統(tǒng)過(guò)給定的密碼登錄頁(yè)面進(jìn)行操作。登錄判定上首次基于數(shù)據(jù)庫(kù)驗(yàn)證。使用者可以在登錄成功后對(duì)密碼進(jìn)行修改,并同時(shí)可以選擇進(jìn)行一系列操作,通話記錄,信息服務(wù),情景設(shè)置,多媒體,小工具,娛樂(lè),客戶服務(wù)。該系統(tǒng)的功能需求可歸納為:1. 用戶通過(guò)密碼進(jìn)入主功能模塊;2. 實(shí)現(xiàn)薄的基本管理;3. 記錄本地的通話情況;4.
13、五子棋小游戲的簡(jiǎn)單實(shí)現(xiàn);5. 背景,語(yǔ)言,時(shí)間的簡(jiǎn)單設(shè)置;6. 媒體播放器的簡(jiǎn)單實(shí)現(xiàn);7. 計(jì)算器,記事本,系統(tǒng)實(shí)時(shí)監(jiān)控,歸屬地查詢,貨幣兌換等小工具的使用;8. 瀏覽器的實(shí)現(xiàn);9. 簡(jiǎn)單客戶信息的查看;2.2 可行性分析2.2.1 技術(shù)可行性分析根據(jù)自己四年所掌握的知識(shí),熟練掌握的語(yǔ)言有:C , C+,Linux C,同事具備對(duì)數(shù)據(jù)庫(kù)的基本使用能力,能用Sql, Mysql, Sqlite,進(jìn)行程序開(kāi)發(fā)。同時(shí),對(duì)嵌入式進(jìn)行過(guò)系統(tǒng)的學(xué)習(xí),懂得匯編語(yǔ)言,交叉編譯,文件系統(tǒng)配置,驅(qū)動(dòng)移植,并且能熟練運(yùn)用QT進(jìn)行程序開(kāi)發(fā)。QT 是一個(gè)跨平臺(tái)應(yīng)用程序和 UI 開(kāi)發(fā)框架。使用 QT 您只要一次性開(kāi)發(fā)應(yīng)用
14、程序,無(wú)需重新編寫源代碼,便可跨不同桌面和嵌入式操作系統(tǒng)部署這些應(yīng)用程序,Qt Creator 是 Qt 被 Nokia 收購(gòu)后推出的一款新的輕量級(jí)集成開(kāi)發(fā)環(huán)境(IDE)。此 IDE 能夠跨平臺(tái)運(yùn)行,支持的系統(tǒng)包括 Linux(32 位與 64 位)、Mac OS X 以與 Windows。根據(jù)官方描述,Qt Creator 的設(shè)計(jì)目標(biāo)是使開(kāi)發(fā)人員能夠利用 Qt 這個(gè)應(yīng)用程序框架更加快速與輕易的完成開(kāi)發(fā)任務(wù)綜上所述,技術(shù)上開(kāi)發(fā)條件具備。2.2.2 經(jīng)濟(jì)可行性分析本系統(tǒng)的開(kāi)發(fā)成本包括開(kāi)發(fā)時(shí)間、軟件、硬件。開(kāi)發(fā)時(shí)間為三個(gè)月,由本人利用畢業(yè)設(shè)計(jì)的時(shí)間完成。軟件成本為現(xiàn)有軟件,已經(jīng)網(wǎng)上找到的免費(fèi)開(kāi)發(fā)工
15、具。完全可以勝任開(kāi)發(fā)要求。硬件成本是已有的一臺(tái)筆記本電腦,相關(guān)現(xiàn)有的外圍設(shè)備,當(dāng)然,演示的時(shí)候可能不能進(jìn)行實(shí)踐的操作。開(kāi)發(fā)本系統(tǒng)的經(jīng)濟(jì)條件基本具備,可以開(kāi)發(fā)。第3章 概要設(shè)計(jì)3.1 系統(tǒng)目標(biāo)基于Arm-Linux平臺(tái)的模擬手機(jī)設(shè)計(jì),能進(jìn)行簡(jiǎn)單的手機(jī)功能,通過(guò)這個(gè)系統(tǒng),能進(jìn)行通話,休閑,娛樂(lè),學(xué)習(xí)等基本功能。3.2 系統(tǒng)模塊圖通過(guò)需求分析可得到模擬手機(jī)設(shè)計(jì)系統(tǒng)的模塊由九大部分構(gòu)成,它們分別是登錄模塊、通訊管理、通話記錄、信息服務(wù)、情景設(shè)置、多媒體、小工具、娛樂(lè)、客戶服務(wù)。功能模塊圖如圖3.1所示。模擬手機(jī)互聯(lián)網(wǎng)信息服務(wù)情景設(shè)置多 媒體小工具登陸通訊管理娛樂(lè)客戶服務(wù)圖 3.1 系統(tǒng)模塊圖3.3 系
16、統(tǒng)功能流程圖開(kāi) 始開(kāi) 機(jī)成功失敗互聯(lián)網(wǎng)信息服務(wù)情景設(shè)置多 媒體小工具通訊管理娛樂(lè)客戶服務(wù)圖 3.2 系統(tǒng)功能流程圖第4章 數(shù)據(jù)庫(kù)設(shè)計(jì)4.1 數(shù)據(jù)庫(kù)需求分析數(shù)據(jù)庫(kù)需求分析就是要了解在這個(gè)系統(tǒng)中,用戶需要查詢、更新、刪除和保存哪些數(shù)據(jù),收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以與數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)8。4.2 數(shù)據(jù)庫(kù)概要設(shè)計(jì)概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵。它的目的是將需求說(shuō)明書(shū)中關(guān)于數(shù)據(jù)的需求,綜合為一個(gè)統(tǒng)一的DBMS概念模型。首先根據(jù)單個(gè)應(yīng)用的需求,畫出能反映每一應(yīng)用需求的局部E-R模型。然后將這些E-R模型圖合并起來(lái),消除冗余和可能存在的矛盾,得出系統(tǒng)總體的E-R模型
17、。E-R圖(Entity-Relationship圖,實(shí)體-關(guān)系圖)是由P.P.Chen于1976年首先提出。它提供不受任何DBMS約束的面向用戶的表達(dá)方法,在數(shù)據(jù)庫(kù)設(shè)計(jì)中被廣泛用作數(shù)據(jù)建模的工具。E-R數(shù)據(jù)模型問(wèn)世后,經(jīng)歷了許多修改和擴(kuò)充。E-R模型的構(gòu)成成分是實(shí)體集、屬性和聯(lián)系集,其表示方法如下:1. 實(shí)體集用矩形框表示,矩形框?qū)懮蠈?shí)體名。2. 實(shí)體的屬性用橢圓框表示,框?qū)懮蠈傩悦?,并用無(wú)向邊與其實(shí)體集相連。3. 實(shí)體間的聯(lián)系用菱形框表示,聯(lián)系以適當(dāng)?shù)暮x命名,名字寫在菱形框中,用無(wú)向連線將參加聯(lián)系的實(shí)體矩形框分別與菱形框相連,并在連線上標(biāo)明聯(lián)系的類型,即11、1M或MM。本系統(tǒng)中的實(shí)體以
18、與實(shí)體的屬性如圖4.1-圖4.4所用 戶 IDPass圖4.1 用戶通訊者IDNamePhoneNInfo圖4.2 通訊人號(hào)碼ID索引歸屬地圖4.3 短信IDRSName號(hào)碼內(nèi)容圖4.4 短信4.3 數(shù)據(jù)庫(kù)物理設(shè)計(jì)本系統(tǒng)采用QT里面自帶的一種小數(shù)據(jù)庫(kù),不需要另外再去安裝。具體部分實(shí)現(xiàn)如下:QSqlDatabase db; /創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象 db = QSqlDatabase:addDatabase("QSQLITE"); /設(shè)置數(shù)炤庫(kù)類型db.setDatabaseName("info.db"); /設(shè)置數(shù)據(jù)庫(kù)的名字QSqlQuery query; /聲
19、明一個(gè)對(duì)象 query.exec("create table password(id int primary key, pass varchar(6)"); /建表query.exec("insert into password values(1, '123')"); /插入數(shù)據(jù)query1.exec("select * from password"); /查詢stModel = new QSqlTableModel(this, db); /創(chuàng)建數(shù)據(jù)模型 stModel->setTable("peopl
20、es"); /模型關(guān)聯(lián)students表stModel->setEditStrategy(QSqlTableModel:OnManualSubmit); /設(shè)置模型編輯策略 stModel->select(); /執(zhí)行默認(rèn)查詢ui->viewInfo->setModel(stModel); / viewInfo 關(guān)聯(lián)模型stModel->insertRow(dwMapper->currentIndex() + 1); /增stModel->removeRow(dwMapper->currentIndex(); /刪除dwMapper-&
21、gt;submit();stModel->submitAll(); /修改第5章 系統(tǒng)詳細(xì)設(shè)計(jì)5.1 登錄詳細(xì)設(shè)計(jì)5.1.1 登錄流程本系統(tǒng)登錄流程如圖5.1所示。開(kāi)始輸入PIN驗(yàn)證登陸 成功YN圖5.1登錄流程5.1.2 登錄頁(yè)面登錄代碼設(shè)計(jì)/密碼匹配 while(query1.next() if(strcmp(query1.value(1).toString().toLocal8Bit().data(), pass.toAscii().data() = 0) spass = "" pass = ""Menu *m = new Menu(this
22、); this->hide(); m->setWindowFlags(Qt:Window|Qt:FramelessWindowHint); m->show(); else QMessageBox:warning(this, "Error", "密碼不對(duì)!"); return;/將密碼轉(zhuǎn)換成*顯示if(strlen(pass.toAscii().data() - strlen(ui->lineEdit->text().toAscii().data()!= 0) for(int num = 0; num < strlen(
23、ui->lineEdit->text().toAscii().data(); num+) if(ui->lineEdit->text().toAscii().data()num != '*') pass.append(ui->lineEdit->text().toAscii().data()num); spass.append("*"); ui->lineEdit->setText(spass); 登陸界面:圖5.2 登錄設(shè)計(jì)5.2 通訊錄管理功能詳細(xì)設(shè)計(jì)5.2.1 通訊錄管理的流程圖顯示所有人顯示成功YN增加
24、查詢刪除XX查找號(hào)碼查找圖5.3 通訊錄管理流程5.2.2 通訊錄管理的設(shè)計(jì)部分代碼設(shè)計(jì): QString name = ui->lineEditName->text();QSqlDatabase db;if(!db.isOpen() db = QSqlDatabase:addDatabase("QSQLITE"); / 設(shè)置數(shù)據(jù)庫(kù)類型 db.setDatabaseName("info.db"); / 設(shè)置數(shù)據(jù)庫(kù)名 if(!db.open() QMessageBox:warning(this, "Error", "
25、;打開(kāi)失敗!"); return; QSqlQuery query;if(!query.exec("select * from peoples") QMessageBox:information(this, "提示", query.lastError().text(); while(query.next() query.value(0).toString().toLocal8Bit().data(); if( !strcmp(name, query.value(1).toString().toLocal8Bit().data() ) ui-&g
26、t;lineEditNum->setText(query.value(2).toString(); ui->lineEditOther->setText(query.value(3).toString(); flag = false; break; 通訊錄管理的部分界面:圖5.4 通訊錄管理頁(yè)面設(shè)計(jì)5.3 情景設(shè)置5.3.1 語(yǔ)言設(shè)置目前設(shè)置了2中語(yǔ)言的轉(zhuǎn)換:中、英文,將來(lái)可能添加多語(yǔ)言。語(yǔ)言設(shè)置的過(guò)程是:1. 在工程中 .pro 中添加 translations = MyPhone_ch.ts (ts前面的名字可以不同);2. 通過(guò)終端進(jìn)入項(xiàng)目的目錄 執(zhí)行l(wèi)update .
27、pro 命令 (這時(shí),MyPhone_ch.ts中容更新了,被tr()標(biāo)注的字符串被提取出來(lái)了);3. 執(zhí)行 linguist MyPhone_ch.ts,進(jìn)行編輯,對(duì)提取的每個(gè)串進(jìn)行翻譯,也就是鍵入對(duì)應(yīng)字串。在左邊面板中列出所有可供翻譯的字串,單擊之,右邊編輯區(qū)會(huì)顯示出來(lái);4. 在“File”菜單下,單擊"Release"項(xiàng),這會(huì)生成我們需要的.qm文件;語(yǔ)言設(shè)置的部分代碼:QTranslator translator(this); /聲明一個(gè)翻譯類的對(duì)象translator.load("Myphone_ch&quo
28、t;,"."); /將配置文件加載進(jìn)來(lái)qApp->installTranslator(&translator); /在所有界面插入配置文件語(yǔ)言設(shè)置的界面:圖5.5 語(yǔ)言切換界面 5.3.2 背景設(shè)置背景設(shè)置就是皮膚設(shè)置,借用css 的靈感, Qt也支持Qt自己的css, 簡(jiǎn)稱qss。同css 相似,qss的主要功能與最終目的都是能使界面的表現(xiàn)與界面的元素分離,即質(zhì)與形的分離,就如同一個(gè)人可以在不同的時(shí)候穿上不同的衣服一樣,css機(jī)制的引入,使得設(shè)計(jì)一種皮膚與界面控件分離的軟件成為可能,應(yīng)用程序也能像web界面那樣隨意地改變外觀。詳細(xì)容請(qǐng)參考:.meegoq./
29、 。Qss的簡(jiǎn)單使用:QFile qss1("test.qss");qss1.open(QFile:ReadOnly);qApp->setStyleSheet(qss1.readAll(); qss1.close();5.3.3 日期查詢圖5.6 日期查詢5.3.4 開(kāi)機(jī)PIN密碼的設(shè)置圖5.7 PIN的設(shè)置5.4 多媒體5.4.1 本系統(tǒng)支持視頻,音頻的播放,具體部分實(shí)現(xiàn)如下:mObject = new Phonon:MediaObject(this); aOutput = new Phonon:AudioOutput(Phonon:MusicCategory, t
30、his); /音頻 vWidget = new Phonon:VideoWidget(ui->frameVideo); /視頻 vWidget->setAspectRatio(Phonon:VideoWidget:AspectRatioAuto); /讓解碼器找到長(zhǎng)寬比從媒體文件自動(dòng)(這是默認(rèn)的) vWidget->setScaleMode(Phonon:VideoWidget:FitInView); /這個(gè)錄像將安裝角度來(lái)填補(bǔ)保持長(zhǎng)寬比 sSlider = new Phonon:SeekSlider(ui->frameProcessVideo); vSlider =
31、new Phonon:VolumeSlider(ui->frameProcessListen); /聲音進(jìn)度條 Phonon:createPath(mObject, aOutput); Phonon:createPath(mObject, vWidget); /關(guān)聯(lián)視頻與 mObject對(duì)象 sSlider->setMediaObject(mObject); /播放進(jìn)度條與播放位置關(guān)聯(lián) vSlider->setAudioOutput(aOutput); /聲音進(jìn)度條與音頻關(guān)聯(lián) sSlider->setMinimumWidth(ui->frameProcessVid
32、eo->width(); /設(shè)置長(zhǎng)度 播放進(jìn)度條 vSlider->setMinimumWidth(ui->frameProcessListen->width(); /設(shè)置長(zhǎng)度 音量大小進(jìn)度條5.4.2 實(shí)現(xiàn)的界面:圖5.8 視頻播放5.5 小工具5.5.1 計(jì)算器支持普通的數(shù)學(xué)運(yùn)算功能,能進(jìn)行 +,-, *、 %。同時(shí)還能進(jìn)行二進(jìn)制,十進(jìn)制,十六進(jìn)制的轉(zhuǎn)換。計(jì)算器的部分代碼如下:/以下是轉(zhuǎn)換為二進(jìn)制的部分代碼:if(T_D_H = 10) /當(dāng)前是十進(jìn)制 number = ui->txtEdit->text().toDouble(); number1 =
33、(int)number; pnumber = number - number1; while(number1) listt+= number1%2;number1 /= 2; t-; while(t != -1) switch(listt) t-; if(pnumber != 0.0) /當(dāng)前的十進(jìn)制有小數(shù)部分 int pn = 3; temp.append("."); while(pn-) else if(T_D_H = 16) /當(dāng)前是十六進(jìn)制 strcpy(clist,ui->txtEdit->text().toLocal8Bit().data(); fo
34、r(int t = 0 ; t < strlen(clist); t-) witch(clistt) ui->txtEdit->setText(temp);T_D_H = 2;/以下是轉(zhuǎn)換為十六進(jìn)制的部分代碼if(T_D_H = 2) else if(T_D_H = 10) j = 1; num = int(ui->txtEdit->text().toLocal8Bit().toDouble(); for(i = 0; ;i+) if(num % 16 > 9) switch(num%16) else clisti = (num % 16) + '4
35、0' num /= 16; if(num < 16) if(num > 9) switch(num) else clist+i = num + '40' break; QString hlist; for(;i > -1;i-) hlist.append(clisti); ui->txtEdit->setText(hlist);T_D_H = 16; 計(jì)算器的運(yùn)行界面:圖5.9 計(jì)算器5.5.2 系統(tǒng)監(jiān)控這部分主要是模擬監(jiān)控系統(tǒng)當(dāng)前的參數(shù),比如溫度,信號(hào)強(qiáng)弱。部分代碼如下:/設(shè)置畫布背景ui->frameShow->setMax
36、imumSize(VIEW_WIDTH+20,VIEW_HEIGHT+20); ui->frameShow->setMinimumSize(VIEW_WIDTH+20,VIEW_HEIGHT+20);scene = new QGraphicsScene(this);sceneX = new QGraphicsScene(this);sceneY = new QGraphicsScene(this);ui->gvShow->setScene(scene);ui->gvShowX->setScene(sceneX);ui->gvShowY->setS
37、cene(sceneY);/設(shè)置畫筆QPen pen(Qt:blue);sceneX->addLine(-VIEW_WIDTH/2+10, 10, VIEW_WIDTH/2-40, 10, pen);sceneY->addLine(10,-VIEW_HEIGHT/2+30,10,VIEW_HEIGHT/2-40, pen);/計(jì)時(shí)器timer = new QTimer(this);connect(timer,SIGNAL(timeout(),this,SLOT(DrawInfo(); /通過(guò)槽函數(shù)觸發(fā)timer->start(1000); /更新時(shí)間為1秒timer1 = n
38、ew QTimer(this);connect(timer,SIGNAL(timeout(),this,SLOT(DrawInfo1();timer1->start(1000);運(yùn)行效果圖:圖5.10 系統(tǒng)監(jiān)控5.5.3 記事本使用者可以查看當(dāng)前目錄下的文本文件。部分代碼如下: /將當(dāng)前的工作目錄放到賦值到buff path = getcwd(buff, sizeof(buff); QDir dir; dir.setPath(path + "/mynotebook/"); dir.cd("."); QStringList str; str <
39、< "*" QFileInfoList list = dir.entryInfoList( str, QDir:AllEntries, QDir:DirsFirst);ui->listWidget->clear();/為了文件的讀寫提供接口 QTextStream in(&pathfile); QString lines = in.readAll(); pathfile.close(); Readnotebook *rn = new Readnotebook(this); this->close(); rn->setWindowFlag
40、s(Qt:Window | Qt:FramelessWindowHint); rn->show();rn->showText(filename, lines);記事本界面: 圖5.11 記事本5.5.4 歸屬地查詢,貨幣兌換通過(guò)對(duì)數(shù)據(jù)庫(kù)里面的容進(jìn)行操作,查詢出當(dāng)前輸入的的歸屬地。貨幣兌換完成的是人民幣和美元,歐元的轉(zhuǎn)換。5.6 英特網(wǎng),地圖搜索實(shí)現(xiàn)了互聯(lián)網(wǎng)功能,也可以說(shuō)是一個(gè)簡(jiǎn)單的瀏覽器。通過(guò)Qt下的 QWebView 類來(lái)加載一個(gè)地址。運(yùn)行界面:圖5.12 瀏覽器5.7 娛樂(lè) 實(shí)現(xiàn)了簡(jiǎn)單的五子棋游戲(五子棋是一種兩人對(duì)弈的純策略型棋類游戲,是起源于中國(guó)古代的傳統(tǒng)黑白棋種之一。發(fā)展
41、于日本,流行于歐美。容易上手,老少皆宜,而且趣味橫生,引人入勝;不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性)。實(shí)現(xiàn)的部分代碼:/人機(jī)對(duì)戰(zhàn)if(arrij = 0) arrij = 1; /白方下了一個(gè)子 item->setIcon(QIcon(QPixmap(":/pic/b.png"); ui->tableWidget->setItem(i, j, item); count+; ui->lineEdit->setText(QString:number(count); numrand = qrand()% 8; if( pset
42、(numrand) = true) arrtempitempj = 2; /黑方下了一個(gè)子 item1->setIcon(QIcon(QPixmap(":/pic/h.png"); ui->tableWidget->setItem(tempi, tempj, item1); else ui->lineEdit->setText(tr("ERROR"); winjudge();/人人對(duì)戰(zhàn) if(who = true) if(arrij = 0) who = false; arrij = 1; /白方下了一個(gè)子 item->
43、;setIcon(QIcon(QPixmap(":/pic/b.png");ui->tableWidget->setItem(i, j, item);count+; ui->lineEdit->setText(QString:number(count); ui->toolButton->setIcon(QPixmap(":/pic/h.png"); else if(arrij = 0) who = true;arrij = 2; item1->setIcon(QIcon(QPixmap(":/pic/h
44、.png");ui->tableWidget->setItem(i, j, item1); ui->toolButton->setIcon(QPixmap(":/pic/b.png"); 運(yùn)行界面: 圖5.13 五子棋游戲這個(gè)游戲的算法不是很高,同是,如果是選擇人機(jī)對(duì)戰(zhàn)的話,一般是人贏,因?yàn)殡娔X不具備進(jìn)攻能力,不能實(shí)現(xiàn)沖四保三。但是僅僅作為一個(gè)娛樂(lè),能同時(shí)兩個(gè)人一起玩。5.8 我的收藏我的收藏模塊主要是管理我的相片,方便用戶查看相片。部分代碼:QDir dir;dir.setPath(path + "/myphoto/"
45、); /打開(kāi)指定目錄路徑 dir.cd("."); /進(jìn)入目錄 QStringList string; string<<"*" QFileInfoList list = dir.entryInfoList(string, QDir:AllEntries, QDir:DirsFirst); /文件信息列表 ui->listWidget->clear(); qDebug()<<list.count();for(int i = 2; i < list.count(); i+) QFileInfo tmpInfo = l
46、ist.at(i); f(tmpInfo.isDir() else if(tmpInfo.isFile() /普通文件 connect(ui->listWidget,SIGNAL(clicked(QModelIndex), this, SLOT(showone(); connect(ui->listWidget, SIGNAL(doubleClicked(QModelIndex), this, SLOT(showphoto(); QString photo = ui->listWidget->selectedItems()0->text(); QString ph
47、otoname = path + "/myphoto/" + photo; Showphoto *s = new Showphoto(this); /跳轉(zhuǎn)到圖片的顯示this->hide(); s->showph(photoname);s->setWindowFlags(Qt:Window|Qt:FramelessWindowHint); s->show();運(yùn)行界面:圖5.14 我的收藏5.9 客服服務(wù)這部分簡(jiǎn)單說(shuō)明本系統(tǒng)的使用,與怎么樣去解決問(wèn)題。第6章 環(huán)境搭建與調(diào)試6.1 開(kāi)發(fā)環(huán)境表6-1列出了系統(tǒng)硬件配置,表6-2列出了系統(tǒng)軟件配置。表6-
48、1 硬件配置設(shè)備名稱配置筆記本DellSIM移動(dòng)卡核心子板Mini2410表6-2 軟件環(huán)境設(shè)備名稱版本操作系統(tǒng)Windows7/Ubuntu數(shù)據(jù)庫(kù)Sqlitter開(kāi)發(fā)環(huán)境QT Creator4.6頁(yè)面布局QSS設(shè)計(jì)工具Word虛擬軟件Vmware_6.56.2 環(huán)境的配置網(wǎng)絡(luò)文件系統(tǒng) : 1. 新建rootfs目錄mkdir /home/rootfs 2. 把rootfs-eduk4-tsp.tgz 解壓到 /home/rootfs 3. 開(kāi)啟虛擬機(jī)linux的NFS服務(wù),并設(shè)置NFS共享 4. 關(guān)閉防火墻,selinux 5. 把網(wǎng)絡(luò)設(shè)置為 橋接, 并設(shè)置IP地址為 192.168.1.x
49、 6. 把開(kāi)發(fā)板打開(kāi),接上藍(lán)色的網(wǎng)線, 按空格進(jìn)入 vivi, 設(shè)置linux_cmd_line:param set linux_cmd_line "root=dev/nfs nfsroot=3:/home/rootfs ip=00:3:::EDUK4:eth0:off console=ttySAC1,115200 mem=64M init=/linuxrc noinitrd" 7 param save 8 boot設(shè)置開(kāi)發(fā)庫(kù)路徑 PATH=/usr/local
50、/arm/qte/4.6.2/bin:$PATH復(fù)制Qt Creator編譯過(guò)的一個(gè)項(xiàng)目目錄到 linux系統(tǒng)的 /home 下在 /home 目錄里執(zhí)行交叉編譯: 進(jìn)行交叉編譯qmake -projectqmakemake測(cè)試編譯環(huán)境:1. 在home下建一個(gè)文件夾rootfs,復(fù)制/usr/local/arm/qte/tslib 到 開(kāi)發(fā)板的 /home/rootfs/usr/qte/下;2. 復(fù)制/usr/local/arm/qte/4.6.2/lib下對(duì)應(yīng)的libQtGui.*, libQtCore.* libQtNetwork.*, libQtSql.* 到開(kāi)發(fā)板根文件系統(tǒng) /hom
51、e/rootfs/usr/qte/4.6.2/lib;cp -rfd /usr/local/arm/qte/4.6.2/lib /home/rootfs/usr/qte/4.6.2可以要把文件系統(tǒng)燒寫到flash, 要再刪除一些沒(méi)有必要的庫(kù);3. /usr/local/arm/qte/4.6.2/lib/下的 fonts目錄也要復(fù)制到開(kāi)發(fā)板根文件系統(tǒng) /usr/qte/4.6.2/lib里4.然后# 修改 rootfs/etc/profile, 添加環(huán)境變量export TSLIB_ROOT=/usr/qte/tslib export QTEDIR=/usr/qte/4.6.2 export
52、TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export QWS_MOUSE_PROTO=tslib:/dev/input/event0 export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTEDIR/lib export POINTERCAL_FILE=$TSLIB_ROOT/etc/pointercalexport
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度水泥生產(chǎn)線環(huán)保設(shè)施維護(hù)合同
- 課題申報(bào)參考:明清時(shí)期陜西古地圖資料集成與數(shù)字活化研究
- 課題申報(bào)參考:馬克思主義文藝育德觀的中國(guó)化時(shí)代化研究
- 2025版生態(tài)農(nóng)業(yè)設(shè)施建設(shè)合同規(guī)范文本3篇
- 2025年度門窗安裝與智能化家居系統(tǒng)集成合同范本3篇
- 2025年度個(gè)人信用擔(dān)保委托代理合同3篇
- 2025年度內(nèi)參內(nèi)容整合與傳播合同4篇
- 2025年度二手車買賣合同車輛交易信息保密及共享協(xié)議4篇
- 2025年度個(gè)人醫(yī)療貸款合同范本修訂版3篇
- 二零二五年度建筑模板腳手架租賃與拆除服務(wù)合同規(guī)范4篇
- 充電樁項(xiàng)目運(yùn)營(yíng)方案
- 退休人員出國(guó)探親申請(qǐng)書(shū)
- 傷殘撫恤管理辦法實(shí)施細(xì)則
- 高中物理競(jìng)賽真題分類匯編 4 光學(xué) (學(xué)生版+解析版50題)
- 西方經(jīng)濟(jì)學(xué)-高鴻業(yè)-筆記
- 幼兒園美術(shù)教育研究策略國(guó)內(nèi)外
- 高中英語(yǔ)選擇性必修一單詞表
- 物業(yè)公司介紹
- 2024屆河南省五市高三第一次聯(lián)考英語(yǔ)試題及答案
- 【永輝超市公司員工招聘問(wèn)題及優(yōu)化(12000字論文)】
- 孕婦學(xué)校品管圈課件
評(píng)論
0/150
提交評(píng)論