Qt跨平臺(tái)數(shù)字化壓力測(cè)量分析監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
摘要:利用Qt提供的C++應(yīng)用程序開發(fā)框架,以單片機(jī)技術(shù)、數(shù)據(jù)庫(kù)技術(shù)為基礎(chǔ),結(jié)合學(xué)校原有的測(cè)量?jī)x器設(shè)計(jì)了一套包括計(jì)算機(jī)分析、儲(chǔ)存數(shù)據(jù)的測(cè)量監(jiān)控系統(tǒng)。使用操作簡(jiǎn)單,人機(jī)界面人性化,錯(cuò)誤機(jī)制的反饋信息能幫助操作者及時(shí)處理錯(cuò)誤操作,同時(shí)單組數(shù)據(jù)存儲(chǔ)幫助學(xué)生更好的記錄自己數(shù)據(jù),為學(xué)生提供了一個(gè)生動(dòng)有趣全面的實(shí)驗(yàn)平臺(tái)。
關(guān)鍵詞:C++;Qt;數(shù)據(jù)庫(kù);單片機(jī);串行通信
在應(yīng)用物理學(xué)科的“數(shù)字化壓力測(cè)量”實(shí)驗(yàn)裝置中,使用了模擬電路,數(shù)字電路,傳感器與單片機(jī)等學(xué)科技術(shù)知識(shí)。為了完成數(shù)據(jù)采集與分析,單靠單片機(jī)技術(shù)所構(gòu)成的硬件系統(tǒng)架構(gòu),雖然可以做到實(shí)時(shí)的監(jiān)控,但不利于數(shù)據(jù)處理的深化與更加深入詳細(xì)分析的表達(dá),數(shù)據(jù)的記錄也會(huì)帶來(lái)誤差,為了解決這些問(wèn)題,讓學(xué)生能更好的領(lǐng)略到數(shù)字化時(shí)代的知識(shí),在完成數(shù)字化壓力測(cè)量檢測(cè)儀的基礎(chǔ)上,提出本課題的設(shè)計(jì)與實(shí)現(xiàn)。
PC機(jī)具有強(qiáng)大數(shù)據(jù)處理,圖像顯示以及實(shí)時(shí)監(jiān)控的能力,利用PC機(jī)的這些特點(diǎn),同時(shí)編寫友好的應(yīng)用程序來(lái)實(shí)現(xiàn)數(shù)據(jù)的采集與分析,具有特殊意義——能夠提升整套測(cè)試系統(tǒng)的處理能力的上位機(jī)得以呈現(xiàn)。
Qt提供的C++應(yīng)用程序開發(fā)框架,可以輕松實(shí)現(xiàn)“一次編寫,隨處編譯”的跨平臺(tái)解決方案,編寫的應(yīng)用程序能完美運(yùn)行于從windows 98到windows 7,從Mac OSX到Linux,從Solaris,HP-UX到其他基于X11的眾多Unix平臺(tái)上。
這讓編寫的應(yīng)用程序可以運(yùn)行在不同的系統(tǒng),很大程度上方便移植。
1 總體架構(gòu)設(shè)計(jì)
軟件整體架構(gòu)包括完善的菜單欄、啟動(dòng)畫面,工具欄,狀態(tài)欄和應(yīng)用程序主界面。軟件架構(gòu)如圖1所示。
由啟動(dòng)畫面進(jìn)入程序主應(yīng)用程序,主應(yīng)用程序初始化界面提供一些必要的操作說(shuō)明,單擊清除按鈕將會(huì)清除說(shuō)明,然后進(jìn)入具體應(yīng)用程序配置,配置完成一些工具按鍵進(jìn)入使能狀態(tài)同時(shí)另一些按鍵進(jìn)入禁止使用狀態(tài)。
軟件保留一個(gè)按鍵作為切換測(cè)量與監(jiān)控模式,具體的模式由單片機(jī)程序決定,默認(rèn)為測(cè)量模式。
Qt是由C++體系實(shí)現(xiàn),采用先進(jìn)的信號(hào)槽機(jī)制,每一個(gè)類對(duì)應(yīng)一個(gè)功能,about.cpp中的about類提供軟件版本,作者和日期等信息,dis play.cpp中的Clock類提供數(shù)據(jù)回歸分析曲線擬合,fader.cpp中FaderWidget類提供對(duì)整體程序彈出窗口中淡入淡出效果,mainwindow.cpp中的MainWindow類提供應(yīng)用程序主體窗口,win_qextserialport.cpp提供的類用于串口配置底層驅(qū)動(dòng)文件。
2 界面布局設(shè)計(jì)
2.1 菜單欄、工具欄以及狀態(tài)欄的實(shí)現(xiàn)
菜單可以讓用戶瀏覽應(yīng)用程序并且可以學(xué)會(huì)如何處理一些新的事情;上下文菜單和工具欄則提供了對(duì)那些常使用的功能進(jìn)行快速訪問(wèn)的方法;狀態(tài)欄用于顯示狀態(tài)提示和其他一些臨時(shí)消息。
在Q1中實(shí)現(xiàn)這3個(gè)子窗口是相通的,原理一樣,實(shí)現(xiàn)手法一樣,只是對(duì)用戶而言看上去不一樣。Qt里面有一個(gè)類,叫做QAction,QAction保存有關(guān)于這個(gè)動(dòng)作,也就是action的信息,神奇的是,QAction能夠根據(jù)添加的位置來(lái)改變自己的樣子,如果添加到菜單中,它就會(huì)顯示成一個(gè)菜單項(xiàng);如果添加到工具欄,它就會(huì)顯示成一個(gè)按鈕,QAction有一個(gè)屬性適用于狀態(tài)欄顯示setStatusTip。通過(guò)這個(gè)屬性可以設(shè)置狀態(tài)欄顯示信息。
example=new QAction(tr(“”),this);
example->setIcon(QIcon(“”));example->setStatusTip(tr(“”));
最后給動(dòng)作添加一個(gè)槽,以便實(shí)現(xiàn)了信號(hào)槽connect(example,SIGNAL(triggered()),this,SLOT())。
評(píng)論