雷文禮 袁君麗 任新成
摘 要:針對(duì)用戶對(duì)氣象信息獲取的需求,設(shè)計(jì)了一種專業(yè)化的基于Qt平臺(tái)的氣象信息顯示軟件系統(tǒng)。該軟件系統(tǒng)融合Linux操作系統(tǒng)、Qt軟件平臺(tái)、圖形界面設(shè)計(jì)等技術(shù),可實(shí)現(xiàn)有關(guān)天氣、溫度、風(fēng)級(jí)、用戶戶外運(yùn)動(dòng)指南等遠(yuǎn)程氣象信息的接收。文章從虛擬機(jī)的安裝、Qt4.7開發(fā)平臺(tái)的搭建、終端設(shè)備的圖形界面設(shè)計(jì)、具體代碼分析等方面,詳細(xì)描述了系統(tǒng)的任務(wù)要求及軟件系統(tǒng)的設(shè)計(jì)方案。實(shí)驗(yàn)和使用表明:該氣象信息軟件系統(tǒng)界面顯示內(nèi)容清晰,可滿足用戶對(duì)氣象信息的即時(shí)獲取。
關(guān)鍵詞:氣象信息;Linux操作系統(tǒng);Qt軟件平臺(tái);界面設(shè)計(jì)
中圖分類號(hào):TN915.4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)08-00-02
0 引 言
當(dāng)前,人們能夠在第一時(shí)間獲取天氣的氣象信息是人們安全出行的保障,氣象終端軟件的誕生是解決這個(gè)問(wèn)題的有效途徑。雖然各種平臺(tái)開發(fā)的氣象終端軟件層出不窮,但是,Qt以其優(yōu)良的跨平臺(tái)特性,強(qiáng)大的功能,良好的移植性使之逐漸成為廣泛應(yīng)用的GUI系統(tǒng),而且在Linux系統(tǒng)下[1],使用Qt的開發(fā)軟件Qt Creator開發(fā)的氣象信息顯示軟件具有占用內(nèi)存小、功能齊全、可擴(kuò)展性好等優(yōu)點(diǎn)。因此,本文選擇使用基于Qt平臺(tái)開發(fā)出一款具有良好的人機(jī)交互界面,可以快速查看實(shí)時(shí)氣象信息的軟件,為人們提供更好的服務(wù)。
1 Qt技術(shù)
Qt作為一個(gè)跨平臺(tái)的開發(fā)系統(tǒng),為我們提供了強(qiáng)大的C++圖形用戶界面庫(kù)。它由挪威TrollTech公司出品,目前包括Qt、基于FrameBuffer的 Qtopia Core、快速開發(fā)工具Qt Designer和國(guó)際化工具Qt Linguis等部分[2,3]。Qt支持所有的Unix系統(tǒng),當(dāng)然也包括Linux系統(tǒng),還支持WinNT/Win2k、Windows95/98平臺(tái)。
基本上,Qt同X-Window上的Motif、Openwin、GTK等圖形界面庫(kù)和 Windows平臺(tái)上的MFC、OWL、VCL、ATL是同類型的。不過(guò),Qt還具有下列一些優(yōu)點(diǎn):
(1)具有優(yōu)良的跨平臺(tái)特性。
Qt支持的操作系統(tǒng)非常多,具體包括:Microsoft Windows95/98、Microsoft Windows NT、Linux、Solaris、SunOS、HP-UX、Digital UNIX(OSF/1、Tru64)、Irix、FreeBSD、BSD/OS、SCO、AIX、OS390 和 QNX 等。
(2)能提供良好的面向?qū)ο筇匦浴?/p>
Qt的良好封裝機(jī)制使得Qt的模塊化程度非常高,可重用性較好,對(duì)于用戶開發(fā)來(lái)說(shuō)是非常方便的。Qt提供了一種稱為signals/slots的安全類型來(lái)替代 callback,這使得各個(gè)元件之間的協(xié)同工作變得十分簡(jiǎn)單。
(3)提供有非常豐富的API函數(shù)。
Qt包括多達(dá)250個(gè)以上的C++類,還提供有基于模板的collections、serialization、file、I/O device、directory management 和 date/time 類,甚至還提供正則表達(dá)式的處理功能。
(4)支持2D/3D圖形渲染,同時(shí)支持OpenGL。
(5)提供有大量的help文檔,相當(dāng)于MSDN,同時(shí)提供有良好的開發(fā)指導(dǎo)。
(6)XML支持。
KDE的出現(xiàn)是真正使Qt在自由軟件界眾多Widgets(如Lesstif、Gtk、EZWGL、Xforms及fltk等)中脫穎而出的主要原因。Qt是一款開源軟件,盡管他的開發(fā)公司是一個(gè)商業(yè)公司,它不僅提供免費(fèi)下載,并且所有的代碼全部都是開放源代碼,非商業(yè)用途亦采用GPL的版權(quán)宣告。
2 氣象信息軟件系統(tǒng)開發(fā)平臺(tái)搭建
2.1 安裝虛擬機(jī)軟件
搭建開發(fā)環(huán)境,最基本的一點(diǎn)就是要進(jìn)行虛擬機(jī)軟件的安裝,具體的安裝過(guò)程如下:
(1)首先,我們應(yīng)該選擇一個(gè)合適的虛擬機(jī)版本,這里選取的是10.0.1版本。
(2)打開下載好的虛擬機(jī)安裝包會(huì)出現(xiàn)安裝虛擬機(jī)的界面,點(diǎn)擊“下一步”會(huì)出現(xiàn)兩個(gè)選項(xiàng) “典型安裝”和 “自定義安裝”,這里選擇“典型安裝”。典型安裝足以滿足項(xiàng)目的需求。
(3)改變虛擬機(jī)的安裝路徑,在這里選擇剩余空間較大的盤安裝。因?yàn)樘摂M機(jī)的運(yùn)行會(huì)占用很大的運(yùn)行內(nèi)存。
(4)點(diǎn)擊下一步選擇“檢查產(chǎn)品更新”,然后一直下一步,顯示軟件正式在電腦中安裝,此過(guò)程需要幾分鐘。
(5)安裝完成后會(huì)提示輸入Key及產(chǎn)品號(hào)。下載時(shí)已經(jīng)得到直接輸入。點(diǎn)擊“完成”,完成虛擬機(jī)的安裝。
2.2 在虛擬機(jī)中安裝Linux系統(tǒng)
Fedora操作系統(tǒng)通常被應(yīng)用于工業(yè)嵌入式開發(fā)中[4,5]。它是一套免費(fèi)的Linux操作系統(tǒng),如今最新的版本已經(jīng)到了Fedora22,此次選擇Fedora20。下面簡(jiǎn)單介紹怎樣在操作系統(tǒng)中安裝Linux操作系統(tǒng):
(1)首先,在Fedora官網(wǎng)上下載Fedora20 64位的Linux操作系統(tǒng)。(注意:此處下載的是iOS鏡像文件)
(2)打開已經(jīng)安裝好的虛擬機(jī),點(diǎn)擊桌面上的創(chuàng)建新虛擬機(jī)選項(xiàng)。新建一個(gè)虛擬機(jī)設(shè)備。
(3)選擇第一步下載好的Fedora路徑,點(diǎn)擊“下一步”會(huì)出現(xiàn)配置此次安裝的虛擬機(jī)。
(4)具體配置選項(xiàng)如圖1所示。
2.3 在Fedora中安裝QtCreator
2.3.1 安裝gcc/g++編譯工具
首先,打開已經(jīng)安裝好的Fedora操作系統(tǒng),保證操作系統(tǒng)可以連上網(wǎng)。因?yàn)檫x擇的是在線安裝gcc/g++。
打開終端,在命令行輸入su,然后輸入密碼。進(jìn)入root權(quán)限,在root下輸入yum –install gcc g++命令。就開始安裝編譯工具。
2.3.2 安裝Qt以及QtCreator
Qt現(xiàn)在的最新版本已經(jīng)到Qt5.3,此次課題選擇的是Qt4.7。以下是它的安裝過(guò)程。之所以選擇Qt,是因?yàn)镼t是專門的圖形GUI平臺(tái),屬于開源軟件。
(1)先進(jìn)入root權(quán)限。在Qt官網(wǎng)上下載Qt庫(kù),庫(kù)名為:qt-everywhere-opensource-src-4.7.1.tar.gz;
(2)進(jìn)入下載的文件所在目錄,然后,使用cp qt-everywhere-opensource-src-4.7.1.tar.gz /tmp,將壓縮文件拷貝到臨時(shí)文件下;
(3)進(jìn)入/tmp目錄,然后輸入命令:tar –zxvf qt-everywhere-opensource-src-4.7.1.tar.gz解壓文件;
(4)準(zhǔn)備數(shù)據(jù)building: ./configure.由于c是商業(yè)版的,o是開源的且是免費(fèi)的,因此選擇o;
(5)編譯Qt源文件,輸入命令gmake,此過(guò)程比較長(zhǎng),大概需要2個(gè)小時(shí)。最后,再輸入gmake –install進(jìn)行安裝。
以上步驟是環(huán)環(huán)相扣的,缺少一步都不行。
2.3.3 安裝QtCreator
安裝QtCreator的步驟如下:
(1)官網(wǎng)上下載Qt Creator 為qt-creator-linux-x86-opensource.2.0.1.bin;
(2)將上面下載好的文件拷入Linux系統(tǒng)中,進(jìn)入其所在目錄,輸入命令./ qt-creator-Linux-x86-opensource.2.0.1.bin進(jìn)行安裝QtCreator;
(3)為QtCreator創(chuàng)建桌面快捷方式。至此,開發(fā)環(huán)境就全部搭建完畢。
3 氣象信息軟件系統(tǒng)的設(shè)計(jì)
3.1 用戶需求分析
根據(jù)應(yīng)用程序的功能需要,對(duì)用戶界面做如下分析設(shè)計(jì):
(1)日期選擇界面:最基本的一點(diǎn),用戶首先需要了解當(dāng)前的日期;
(2)實(shí)時(shí)天氣界面:顯示所選城市當(dāng)前的實(shí)時(shí)天氣情況,包括天氣描述、溫度高低、風(fēng)級(jí)等氣象信息。此界面是應(yīng)用程序的主界面,所以在設(shè)計(jì)的時(shí)候應(yīng)盡量使界面美觀,將天氣數(shù)據(jù)以用戶所容易接受的方式呈現(xiàn)出來(lái);
(3)城市選擇界面:用戶可以根據(jù)需要選擇各個(gè)城市并查看城市的天氣情況,因此需要在界面上顯示出來(lái)具體是在哪個(gè)城市。
結(jié)合以上幾點(diǎn)的用戶需求,大概就有了界面的總體構(gòu)圖,主要分為三個(gè)界面,即日期選擇界面、實(shí)時(shí)天氣界面、城市選擇界面。系統(tǒng)提供定時(shí)更新功能,應(yīng)用http://m.weather.com.cn/data/網(wǎng)站上提供的免費(fèi)的WebService接口可以獲取具體的天氣預(yù)報(bào)信息。
3.2 氣象信息軟件系統(tǒng)的設(shè)計(jì)
選擇的父窗口類型為QMinWindow,其他的所有類均繼承于父窗口。需要一個(gè)QtableWiget類可以顯示一周之內(nèi)的天氣情況,一個(gè)Qcombox類用來(lái)選擇用戶所需要查看的城市(目前只支持三個(gè)城市的搜索西安,延安,渭南),若干個(gè)QLabel類用來(lái)顯示所需要顯示的信息。添加一個(gè)QGroupBox類和若干QLabel類來(lái)顯示推薦指數(shù),用戶可以獲取進(jìn)行具體戶外運(yùn)動(dòng)的推薦指數(shù)。程序通過(guò)tableWidget從網(wǎng)絡(luò)上得到的數(shù)據(jù)進(jìn)行判斷,然后通過(guò)推薦幾顆星來(lái)幫助用戶在準(zhǔn)備戶外運(yùn)動(dòng)的時(shí)候能快速?zèng)Q定。
4 結(jié) 語(yǔ)
隨時(shí)隨地獲取當(dāng)前及未來(lái)幾日的氣象信息是現(xiàn)代社會(huì)生活的需求,本文設(shè)計(jì)了一種專業(yè)化的基于Qt平臺(tái)的氣象信息顯示軟件系統(tǒng)。該軟件系統(tǒng)融合Linux操作系統(tǒng)、Qt軟件平臺(tái)、圖形界面設(shè)計(jì)等技術(shù),實(shí)現(xiàn)了有關(guān)天氣、溫度、風(fēng)級(jí)、用戶戶外運(yùn)動(dòng)指南等遠(yuǎn)程氣象信息的接收。實(shí)驗(yàn)和使用表明:該氣象信息軟件系統(tǒng)界面顯示內(nèi)容清晰,可滿足用戶對(duì)氣象信息的即時(shí)獲取需求。
參考文獻(xiàn)
[1]宋寶華.Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解[M].北京:人民郵電出版社,2010:478-528.
[2]成潔,盧紫毅.Linux窗口程序設(shè)計(jì)—Qt4精彩實(shí)例分析[M].北京:清華大學(xué)出版社,2015.
[3]龔建偉,熊光明.Visual C++/Turbo C串口通信編程實(shí)踐[M].北京:電子工業(yè)出版社,2004.
[4]李善平,劉文峰,王煥龍.Linux與嵌入式系統(tǒng)[M].北京:清華大學(xué)出版社,2006.
[5]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008:197-221.