999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Qt中基于QCustomPlot實現曲線繪制和顯示的研究

2019-11-19 12:13:38徐瑤
科技視界 2019年25期

徐瑤

【摘 要】為了更加直觀有效的繪制和顯示雷達產生的大量數據,本文提出了一種Qt平臺下基于QCustomPlot實現曲線繪制和顯示的方法,該方法可以簡單方便的定制曲線窗和曲線的外觀,有效簡化了曲線繪制的流程,降低了開發過程中功能實現的難度。通過在某型雷達顯控軟件中使用該方法繪制和顯示雷達校正樣本數據,驗證了該方法的有效性。

【關鍵詞】QCustomPlot;Qt平臺;校正樣本數據

中圖分類號: TP368.1文獻標識碼: A文章編號: 2095-2457(2019)25-0054-002

DOI:10.19694/j.cnki.issn2095-2457.2019.25.025

0 引言

隨著雷達技術的不斷發展,最終送至雷達顯控軟件界面上顯示的信息也越來越多,以校正樣本數據為例,視校正通道的數量不同,可能需要同時顯示幾十至上百個通道的數據,每個通道又包含幾十至上百個采樣點。如此巨大數量的數據如果采用常規的列表顯示,不但列表數據龐大,而且使用起來效率低下,對操作人員非常不友好。因此,我們需要使用二維圖表來直觀形象的顯示這些數據[1]。

雷達顯控軟件為了繪制曲線信息,采用了多種第三方庫和插件,較為常用的有TeeChart[2]、qwt[3-4]等,其中TeeChart繪制圖形表現形式豐富,但因其是商業軟件,會給部分開發者帶來較大的經濟負擔;qwt具有跨平臺的屬性,代碼開源,但表現形式略顯不足,不能滿足細節需要精細顯示的項目需要。

為實現復雜曲線繪制和顯示,本文提出一種在Qt中基于QCustomPlot來實現的方法。使用該方法可以同時顯示多個曲線窗,改善了之前使用傳統方法處理只能顯示一個曲線窗的狀況。并在每個曲線窗中繪制多條二維曲線,方便進行多條曲線之間的比較。操作人員還可以隨意獲取每條曲線的信息,有利于快速定位問題。該方法容易上手、使用簡便,并且可以跨平臺使用,不但可以解決前文中提到的問題,還可以給軟件操作人員提供更好的數據顯示效果。

1 相關技術

QCustomPlot是在Qt框架下實現的基于LGPL版權協議的開源項目,它無需進一步的庫依賴,文檔豐富且使用方便,主要完成二維曲線的繪圖和數據可視化,如曲線圖、趨勢圖、坐標圖、柱狀圖等。

(1)將幫助文檔qcustomplot.qch復制到Qt目錄下,打開Qt,工具->選項->幫助->添加,選擇qcustomplot.qch,安裝幫助文檔。

(2)將qcustomplot.h文件和qcustomplot.cpp文件復制到工程文件里,并在項目里添加這兩個文件。

(3)在.pro文件中加入語句 QT+=printsupport。

此時就可以將項目中的QWidget控件提升為QCustomPlot控件使用了。

2 復雜曲線繪制及顯示的實現

2.1 曲線窗模塊數據處理流程

仍以雷達顯控軟件中顯示校正樣本數據的曲線窗為例,基于QCustomPlot的曲線窗顯示和繪制模塊主要包括四個部分,即數據接收模塊、數據管理模塊、人機交互模塊和顯示繪制模塊.數據接收模塊接收經由網絡發來的校正樣本數據,數據管理模塊負責對校正樣本數據的解析、保存及管理,人機交互模塊負責實現曲線窗的人機交互功能,顯示繪制模塊負責使用QCustomPlot控件來繪制校正樣本數據,并將其顯示出來。

2.2 曲線窗主窗體設計

曲線窗主窗體包含多個子窗體,均為由QWidget控件提升而成QCustomPlot控件,分別用來顯示校正前和校正后的樣本數據,每個子窗體中同時顯示所有通道的樣本數據,每個通道顯示為一條二維曲線。

2.3 子窗體數據管理設計

在每個子窗體中需要繪制多條二維曲線,每條對應一個通道的樣本數據。對于由數據接收模塊接收到的校正樣本數據,程序首先識別不同的校正樣本數據類型,根據校正樣本數據類型判斷出通道數和每個通道的樣本數。由于數據包中的校正樣本數據是一維線性排列的,需要根據通道數和樣本數解析出每條二維曲線的數據,送給顯示繪制模塊的同時還作為二維數組保存至本地。

2.4 子窗體的繪制顯示設計

2.4.1 設置子窗體和曲線顯示的外觀

設置子窗體外觀的代碼如下:

QCustomPlot * m_CurvePlot;

m_CurvePlot->plot->xAxis->setBasePen(QPen(QColo(239,239,239)));//設置橫軸的顏色

m_CurvePlot->plot->xAxis->setTickPen(QPen(QColor(239,239,239)));//設置橫軸主刻度的顏色

m_CurvePlot->plot->xAxis->setTickLabelFont(QFont("宋體",9));//設置橫軸刻度標記的字體

m_CurvePlot->plot->xAxis->setTickLabelColor(QColor(239,239,239));//設置橫軸刻度標記的顏色

m_CurvePlot->plot->yAxis->setBasePen(QPen(QColor(239,239,239)));//設置縱軸的顏色

m_CurvePlot->plot->yAxis->setTickPen(QPen(QColor(239,239,239)));//設置縱軸主刻度的顏色

m_CurvePlot->plot->yAxis->setTickLabelFont(QFont("宋體",9));//設置縱軸刻度標記的字體

m_CurvePlot->plot->yAxis->setTickLabelColor(QColor(239,239,239));//設置縱軸刻度標記的顏色

m_CurvePlot->plot->setBackground(QBrush(Qt::NoBrush));//設置窗體背景的畫刷

設置子窗體中曲線的顯示樣式的代碼如下:

m_CurvePlot->plot->legend->setVisible(false);//設置圖例說明是否可見

m_CurvePlot->plot->graphs[i]->setLineStyle(QCPGraph::IsLine);//設置線條的樣式

m_CurvePlot->plot->graphs[i]->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle,6));//設置點的樣式

2.4.2 數據更新

首先調用函數setData(const QVector&key, const QVector&value)更新曲線數據,再調用函數replot()重繪當前子窗體中顯示的曲線。

2.4.3 數據刪除

調用函數removeGraph(graphs[i])刪除給定序號的曲線,再調用函數replot()重繪刪除某些曲線后子窗體的顯示。

2.5 子窗體的人機交互設計

由于校正樣本數據通道數較多,所以本例中設置不顯示圖例,并使用setColor函數給每條曲線設置不同的顏色。但受到顯示器顯示效果和人眼對不同顏色識別能力的制約,當二維曲線數量達到幾十條甚至上百條的時候,操作人員很難通過顏色或圖例來區分不同通道的曲線,故程序中加入選中某條曲線的功能,利用Qt中的信號與槽機制,當操作人員使用鼠標選中某條曲線的時候會自動釋放selectionChangedByUser()信號,將其與槽函數關聯,在槽函數中判斷graphs[i]->selected()為真時的i值,并將其更新到界面上,提示當前選中的曲線序號。

3 應用實例

在某型雷達項目顯控軟件開發中采用Qt5.7.0進行校正樣本數據繪制和顯示,顯示效果如圖4所示。通過實際應用,證明該曲線窗可以很好的滿足項目的實際需求,并且在開發新項目和在不同的平臺上移植時都簡便快捷。

【參考文獻】

[1]丁鷺飛,耿富錄.雷達原理[M].4版.西安:西安電子科技大學出版社,2009:4.

[2]陳俊良,葉林,葛俊鋒,等.TeeChart控件在實時檢測系統上位機軟件中的應用[J].2015,28(6):13-15.

[3]高菲,袁媛,林成地,等.Qwt類庫在二維云圖繪制中的應用[J].現代電子技術,2014,37(14):100-102.

主站蜘蛛池模板: 老司国产精品视频91| 99re精彩视频| 亚洲制服丝袜第一页| 综合色区亚洲熟妇在线| 久久黄色影院| 亚洲一级毛片在线播放| 99久久精品免费看国产电影| 国产精品香蕉在线| 视频在线观看一区二区| 欧美精品色视频| 日本国产精品| 综1合AV在线播放| 在线一级毛片| 高清久久精品亚洲日韩Av| 少妇人妻无码首页| 亚洲国模精品一区| 激情综合网激情综合| 免费xxxxx在线观看网站| 无码精品国产dvd在线观看9久| 三级国产在线观看| 无码不卡的中文字幕视频| 国产日本欧美在线观看| 欧美三级自拍| 波多野结衣无码视频在线观看| av午夜福利一片免费看| 国产sm重味一区二区三区| 久久99精品国产麻豆宅宅| 国产在线视频导航| 婷婷综合缴情亚洲五月伊| 免费A∨中文乱码专区| 国产欧美日韩资源在线观看| 三上悠亚精品二区在线观看| a级免费视频| 日韩精品一区二区深田咏美| 午夜无码一区二区三区| 久久久成年黄色视频| 香蕉综合在线视频91| 四虎免费视频网站| 午夜国产精品视频| 国产黑丝一区| 久久综合一个色综合网| 亚洲国产精品一区二区第一页免| 91亚洲免费视频| 欧美人在线一区二区三区| 青青操国产视频| 国产正在播放| 无码综合天天久久综合网| 在线观看欧美精品二区| 亚洲欧美成人| a毛片在线| 伊人激情综合网| 青青极品在线| 天堂中文在线资源| 无码免费的亚洲视频| 91成人免费观看在线观看| A级全黄试看30分钟小视频| 国产成人一区免费观看| 免费一级α片在线观看| 欧美黄网站免费观看| 亚洲91在线精品| 免费人成视频在线观看网站| 亚洲人人视频| 国产精品v欧美| 女人18毛片一级毛片在线 | 亚洲美女一区| 色婷婷亚洲综合五月| 国产白浆一区二区三区视频在线| 精品国产福利在线| 国产精品性| 在线欧美国产| 精品综合久久久久久97超人| 这里只有精品在线播放| 色偷偷一区| 99在线视频精品| 亚洲高清中文字幕在线看不卡| 国产剧情伊人| 国产精品成人一区二区| 色婷婷视频在线| 国产丰满成熟女性性满足视频| 久草性视频| 成人韩免费网站| 女人av社区男人的天堂|