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.

主站蜘蛛池模板: 又粗又大又爽又紧免费视频| 婷婷五月在线视频| 亚洲精品欧美日本中文字幕| 国产在线自乱拍播放| 国产成人高清精品免费软件| P尤物久久99国产综合精品| 在线国产资源| 野花国产精品入口| 国产97公开成人免费视频| 色AV色 综合网站| 99热亚洲精品6码| 亚洲成A人V欧美综合天堂| 色综合综合网| 亚洲人成日本在线观看| 欧美无专区| 麻豆国产原创视频在线播放| 亚洲欧美日韩视频一区| 国产18在线播放| 亚洲床戏一区| 成人a免费α片在线视频网站| 国产欧美视频在线观看| 色男人的天堂久久综合| 婷婷色一区二区三区| 自拍中文字幕| 精品国产三级在线观看| 波多野结衣一区二区三区88| 亚洲综合经典在线一区二区| 国产素人在线| 欧美国产综合视频| 国产精品专区第一页在线观看| 日韩在线影院| 国产三级视频网站| 国内嫩模私拍精品视频| 国产精品自在在线午夜区app| 无码免费视频| 久草国产在线观看| 人妻21p大胆| 亚洲精品无码AⅤ片青青在线观看| 精品福利网| 久久香蕉国产线看观看亚洲片| 日本手机在线视频| 中文字幕永久视频| 欧美午夜精品| www.99在线观看| 98超碰在线观看| 国产午夜精品一区二区三区软件| 在线播放精品一区二区啪视频| 欧美全免费aaaaaa特黄在线| 中文字幕色站| aaa国产一级毛片| 精品国产自在现线看久久| 国产噜噜噜视频在线观看 | 人妻无码AⅤ中文字| 日本午夜精品一本在线观看| 精品午夜国产福利观看| 99视频只有精品| 久久 午夜福利 张柏芝| 自偷自拍三级全三级视频| 91精品国产自产在线观看| 国产主播一区二区三区| 中文字幕在线观看日本| 免费在线不卡视频| 国产色婷婷| 久久semm亚洲国产| 人妻免费无码不卡视频| 99无码中文字幕视频| 国产精品lululu在线观看| 婷五月综合| 色婷婷电影网| 92午夜福利影院一区二区三区| 女人18毛片久久| 久青草免费视频| 波多野结衣亚洲一区| 欧美成人综合在线| 亚洲男人的天堂在线| 国产夜色视频| 久久综合九九亚洲一区| 欧美一区二区丝袜高跟鞋| 国产精品七七在线播放| 91欧美在线| 中文字幕免费在线视频| 国产第一页亚洲|