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.

主站蜘蛛池模板: 伊人久热这里只有精品视频99| 91福利免费视频| 国产精品亚洲一区二区在线观看| yy6080理论大片一级久久| 亚洲人成色在线观看| 久草国产在线观看| 伊人久久婷婷| 亚洲乱强伦| 久久久久国产一级毛片高清板| 欧美 亚洲 日韩 国产| 91尤物国产尤物福利在线| 91丝袜美腿高跟国产极品老师| 51国产偷自视频区视频手机观看| 色播五月婷婷| 在线免费a视频| 无码专区在线观看| 91久久国产综合精品| 综合网天天| 亚洲aaa视频| 天天干伊人| 国产内射一区亚洲| 园内精品自拍视频在线播放| 久久精品国产亚洲AV忘忧草18| 欧美在线中文字幕| 老司机午夜精品视频你懂的| 国产中文一区a级毛片视频| 国产精品香蕉| 欧美日韩导航| 国产午夜一级毛片| 日韩高清成人| 久草网视频在线| 996免费视频国产在线播放| 国产香蕉97碰碰视频VA碰碰看| 大学生久久香蕉国产线观看| 永久免费AⅤ无码网站在线观看| 91青青在线视频| 欧美日本在线观看| AV天堂资源福利在线观看| 国产成人乱无码视频| 无码免费试看| 亚洲国产在一区二区三区| av天堂最新版在线| 国产在线拍偷自揄观看视频网站| 欧美有码在线观看| 久久动漫精品| 精品无码一区二区三区电影 | 亚洲精品午夜无码电影网| 国产精品自拍露脸视频 | 国产91九色在线播放| 高清不卡毛片| 国产粉嫩粉嫩的18在线播放91| 亚洲国产欧美中日韩成人综合视频| 亚洲综合欧美在线一区在线播放| 福利在线不卡一区| 91麻豆国产精品91久久久| 中文字幕亚洲专区第19页| 91在线丝袜| 亚洲,国产,日韩,综合一区 | 国产精品第一区| 欧美va亚洲va香蕉在线| 欧美a级在线| 国产人碰人摸人爱免费视频| 有专无码视频| 天天综合天天综合| 亚洲精品动漫在线观看| 97人人模人人爽人人喊小说| 中国成人在线视频| 中文字幕丝袜一区二区| 91免费国产高清观看| 91娇喘视频| 999国内精品久久免费视频| 91色在线观看| 国产午夜精品鲁丝片| 毛片a级毛片免费观看免下载| 久久久久青草大香线综合精品| 在线视频亚洲色图| 91午夜福利在线观看| 亚洲欧美天堂网| 亚洲成人免费在线| 国产一区二区三区精品欧美日韩| 亚洲欧美成人在线视频| 国产偷国产偷在线高清|