關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于Qt環(huán)境下物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

基于Qt環(huán)境下物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2016-10-15 來源:網(wǎng)絡(luò) 收藏

摘要:基于物理實(shí)驗(yàn)數(shù)據(jù)的處理復(fù)雜性與繁瑣性,采用軟件所提供的C++編程環(huán)境,進(jìn)行實(shí)驗(yàn)軟件開發(fā)。以實(shí)驗(yàn)為實(shí)例,設(shè)計(jì)研發(fā)得到一套實(shí)驗(yàn)數(shù)據(jù)計(jì)算分析的處理軟件??蛇m應(yīng)邁克爾遜于涉儀實(shí)驗(yàn)需求,可運(yùn)行于windows 98、windows 7、Unix等不同平臺,方便各個(gè)不同系統(tǒng)地移植使用。其兼容逐差法、最小二乘法等多種不同算法。界面美觀,設(shè)計(jì)合理,提供了一個(gè)通用型實(shí)驗(yàn)數(shù)據(jù)處理平臺。

本文引用地址:http://www.butianyuan.cn/article/201610/307168.htm

應(yīng)用現(xiàn)代軟件科學(xué)技術(shù)改進(jìn)傳統(tǒng)實(shí)驗(yàn),是適應(yīng)課程創(chuàng)新發(fā)展的需求。研制具有簡潔方便的實(shí)驗(yàn)數(shù)據(jù)處理工作平臺,應(yīng)用于繁瑣的物理實(shí)驗(yàn)數(shù)據(jù)處理中,適應(yīng)于不同物理參數(shù)的測試需求;并且具備有其自身的個(gè)性化特點(diǎn),適合特殊性物理參數(shù)測試需求。全篇以邁克爾遜實(shí)驗(yàn)數(shù)據(jù)處理軟件實(shí)例作為個(gè)案來展開,具體描述整個(gè)軟件的設(shè)計(jì)與開發(fā)。

作為系統(tǒng)開發(fā)的環(huán)境,具有不可替代的優(yōu)勢。提供的C++應(yīng)用程序開發(fā)框架,可以輕松實(shí)現(xiàn)“一次編寫,隨處編譯”的跨平臺解決方案,編寫的應(yīng)用程序能完美運(yùn)行于從windows 98到windows 7,從Mac OSX到Linux,從Solaris,HP—UX到其他基于X11的眾多Unix平臺上。這讓編寫的應(yīng)用程序可以運(yùn)行在不同的系統(tǒng),方便移植,甚至能夠在經(jīng)過簡單的修改后輕松移植至應(yīng)用廣泛的android平臺。Qt設(shè)計(jì)師是強(qiáng)大的跨平臺GUI布局和格式構(gòu)建器。

同時(shí)Qt是一個(gè)跨平臺的圖形用戶界面應(yīng)用程序開發(fā)的C++工具箱。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的各種功能,從而直觀的對可視化用戶交互界面進(jìn)行設(shè)計(jì)。Qt是完全面向?qū)ο蟮模子跀U(kuò)展,并且允許真正地組件編程。

1 實(shí)驗(yàn)原理簡介

實(shí)驗(yàn)原理如圖1所示,從光源S發(fā)出的光線經(jīng)半反射鏡的反射和透射后分為兩束光線,一束向上一束向右,向上的光線又經(jīng)C反射回來,向右的光線經(jīng)補(bǔ)償板后被反射鏡D反射回來在半反射鏡處被再次反射向下,最后兩束光線在觀察屏上相遇,產(chǎn)生干涉。干涉儀的整體結(jié)構(gòu)如圖2所示,圖中1~16為儀器上各個(gè)部件的數(shù)字編號,可查詢相關(guān)資料。

a.jpg

2 系統(tǒng)軟件總架構(gòu)

軟件功能的實(shí)現(xiàn)依靠3種機(jī)制:C++面向?qū)ο缶幊虣C(jī)制,Qt的信號與槽機(jī)制,Qt的事件機(jī)制。

Qt編程是由C++體系實(shí)現(xiàn),面向?qū)ο蟮木幊谭椒ê蚎t豐富的類庫,使用戶能夠更簡單靈活的實(shí)現(xiàn)各種功能。在QtCreator的幫助模式下,可以查詢所有類的信息。應(yīng)用這種機(jī)制,可以使程序結(jié)構(gòu)靈活,層次感強(qiáng)。

軟件整體構(gòu)架包括主界面與啟動(dòng)界面兩大部分構(gòu)成。學(xué)生在做完相應(yīng)的邁克爾遜干涉實(shí)驗(yàn)后,即可啟動(dòng)軟件,進(jìn)行數(shù)據(jù)輸入與計(jì)算。在數(shù)據(jù)的輸入過程辨清環(huán)變數(shù)與數(shù)據(jù)組數(shù),使用不同算法進(jìn)行數(shù)據(jù)處理,采用二者比較精確值,操作簡便和人性化。系統(tǒng)構(gòu)架圖如圖3所示。

b.jpg

其中qidong.cpp類下提供的軟件信息包括軟件版本號,開發(fā)作者,開發(fā)日期等并且添加圖片使界面更為美觀。log.cpp提供包括學(xué)生信息錄入,和學(xué)號信息驗(yàn)證提示等功能。mainwindow.cpp提供的主程序界面內(nèi)容及其所包含的兩個(gè)核心文件,zuixiao.cpp和zhucha.cpp這是該軟件主要算法程序最小二乘法和逐差法包括它們相應(yīng)的誤差計(jì)算方法。最后mvedit.cpp是界面美觀與焦點(diǎn)等復(fù)合問題處理。

3 界面設(shè)計(jì)與布局優(yōu)化

3.1 啟動(dòng)界面優(yōu)化

1)布局優(yōu)化:啟動(dòng)程序,進(jìn)入啟動(dòng)界面,界面出現(xiàn)版本號,開發(fā)作者等信息優(yōu)化布局。

2)界面美觀:在Qt樣式表中添加相應(yīng)的彩圖達(dá)到美觀界面的效果。

3.2 登陸界面設(shè)計(jì)

1)登陸信息:進(jìn)入啟動(dòng)界面4~5秒后,出現(xiàn)登陸界面,包括學(xué)生學(xué)號信息錄入和身份驗(yàn)證。

2)錯(cuò)誤警示:如果學(xué)生未錄入信息將不能進(jìn)入主程序,出現(xiàn)警示窗口。在這里體現(xiàn)到了Qt中最為核心的信號與槽的關(guān)鍵應(yīng)用。通過信號和槽的應(yīng)用實(shí)現(xiàn)各個(gè)界面和數(shù)據(jù)等的傳遞。比如,點(diǎn)擊按鈕“關(guān)閉窗口”就會(huì)發(fā)出一個(gè)信號,對應(yīng)的槽函數(shù)close()會(huì)被調(diào)用以響應(yīng)這個(gè)信號。這種機(jī)制使部件與部件,部件與后臺,部件與其他窗口,窗口與窗口之間可以進(jìn)行交流。

3.3 主界面布局設(shè)計(jì)

為了方便師生們對本物理實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)的使用,提升用戶體驗(yàn),需要對主界面進(jìn)行合理的布局與適當(dāng)?shù)拿阑T诖翱诮M件的分布方面,采用左右布局使界面更加緊湊。而在對窗口組件的美化方面,首先添加資源文件,然后使用其設(shè)計(jì)面下的Qt樣式表,修改界面中的文字格式和添加彩圖等功能對主界面進(jìn)行美觀優(yōu)化。

例如:為了對文字做美化處理,在Qt更改樣式中添加如下代碼

QPushButton{ffbnt:75 18pt“華文楷體”;color:rgb(0,0,255);}

從而對按鈕進(jìn)行美化處理,將字體變?yōu)榭w,調(diào)整其大小,并且改變按鈕字體顏色為藍(lán)色,從而讓使用者身心更為愉悅。

3.4 焦點(diǎn)光標(biāo)的可控性

在實(shí)際使用中,由于本實(shí)驗(yàn)數(shù)據(jù)個(gè)數(shù)相對較多,因此簡化對于焦點(diǎn)光標(biāo)的控制十分重要。

故定義繼承自LineEdit類的自定義類QMyEdit,在類內(nèi)以鏈表形式建立對象間順序的邏輯關(guān)系。

類定義頭文件qMyEdit.h如下

c.jpg

d.jpg

而后將LineEdit類的文本框?qū)ο筇嵘秊镼MyEdit類,并重寫QMyEdit類的默認(rèn)鍵盤事件函數(shù),捕捉上/下方向鍵的輸入,并按順序移動(dòng)文本框焦點(diǎn),從而實(shí)現(xiàn)對焦點(diǎn)光標(biāo)的便捷控制,簡化使用時(shí)的輸入操作。

鍵盤事件函數(shù)重寫方式如下

e.jpg

3.5 雙算法的實(shí)現(xiàn)與變量數(shù)據(jù)的可控性

1)多種算法綜合實(shí)現(xiàn):mainwindow類下有兩個(gè)程序zuixiao.cpp和zhucha.cpp,分別執(zhí)行該軟件的兩種核心算法:最小二乘法和逐差法,并計(jì)算兩種算法相應(yīng)的誤差。逐差法在數(shù)據(jù)處理中較為普遍,而最小二乘法則是利用呈線性關(guān)系的兩組數(shù)據(jù)擬合為直線,在本實(shí)驗(yàn)的數(shù)據(jù)處理中只需獲取其斜率及誤差。

兩種算法的綜合應(yīng)用是一個(gè)較為新穎的數(shù)據(jù)處理方法。學(xué)生的實(shí)驗(yàn)數(shù)據(jù)輸入后,通過信號和槽的應(yīng)用,將數(shù)據(jù)從主界面?zhèn)鬟f至計(jì)算部分,在處理完畢后再將結(jié)果返回主界面并顯示。同時(shí)顯示兩種方法的結(jié)果與其對應(yīng)誤差,增強(qiáng)計(jì)算結(jié)果的可信度。

2)數(shù)據(jù)可控的實(shí)現(xiàn):數(shù)據(jù)可控是指對實(shí)驗(yàn)數(shù)據(jù)的個(gè)數(shù)和實(shí)驗(yàn)中兩次獲取數(shù)據(jù)的間隔間光屏上環(huán)數(shù)的改變數(shù)進(jìn)行控制,從而不為單一的實(shí)驗(yàn)數(shù)據(jù)獲取方式所局限。在主界面上放置兩個(gè)spin部件,用以改變輸入數(shù)據(jù)個(gè)數(shù)和環(huán)的變化個(gè)數(shù),同時(shí)允許通過鼠標(biāo)點(diǎn)擊改變數(shù)據(jù)大小。在實(shí)驗(yàn)時(shí)可以根據(jù)實(shí)際情況改變數(shù)據(jù)組數(shù)與環(huán)的變化個(gè)數(shù),從而擴(kuò)大軟件的適用范圍。

f.jpg

4 實(shí)驗(yàn)測試與反饋

通過對多組不同的數(shù)據(jù)對軟件進(jìn)行測試,并改變數(shù)據(jù)組數(shù)與變化環(huán)數(shù),將軟件計(jì)算結(jié)果與傳統(tǒng)計(jì)算結(jié)果比較,結(jié)果完全吻合。

在有效數(shù)字保留方面保持了前后一致,確保數(shù)據(jù)處理的精確度。

g.jpg

5 結(jié)束語

1)軟件投入到實(shí)驗(yàn)教學(xué)中后,得到了廣大師生的一致好評。方便了學(xué)生對于繁瑣數(shù)據(jù)的處理,學(xué)生在實(shí)驗(yàn)方面積極性與活躍性得到了一定程度的提高。同時(shí)也使得教師在教學(xué)方面得到了相當(dāng)大的幫助,提升了教學(xué)質(zhì)量。

2)在本軟件中通過對所有用戶可見的文本使用QString,對動(dòng)態(tài)文本使用QString::arg()函數(shù),對所有文字文本使用tr()函數(shù)來實(shí)現(xiàn)國際化。

3)Qt完全面向?qū)ο?,方便了系統(tǒng)的開發(fā)。Qt的跨平臺特性簡化了移植過程,針對不同的軟件平臺,應(yīng)用程序只需要一次性開發(fā)可實(shí)現(xiàn)多次編譯;實(shí)驗(yàn)教學(xué)也是一門很重要的學(xué)科應(yīng)用。



評論


相關(guān)推薦

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

關(guān)閉