最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt圖形圖像開發(fā)之曲線圖模塊QCustomplot庫(kù)生成靜態(tài)、動(dòng)態(tài)曲線詳細(xì)教程圖解

 更新時(shí)間:2020年03月10日 16:29:37   作者:52_赫茲的鯨  
這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖模塊QCustomplot庫(kù)畫靜態(tài)、動(dòng)態(tài)曲線詳細(xì)教程圖解,需要的朋友可以參考下

Qt曲線圖模塊QCustomPlot庫(kù)介紹

QCustomPlot是一個(gè)小型的Qt畫圖標(biāo)類,支持繪制靜態(tài)曲線、動(dòng)態(tài)曲線、多重坐標(biāo)曲線,柱狀圖,蠟燭圖等。只需要在項(xiàng)目中加入頭文件qcustomplot.h和qcustomplot.cpp文件,然后使一個(gè)widget提升為QCustomPlot類,即可使用。

QCustomPlot官網(wǎng):

  http://www.qcustomplot.com/

QCustomPlot下載地址:

  http://www.qcustomplot.com/index.php/download 

QCustomPlot幫助文件

QCustomPlot源碼包中,有QCustomPlot幫助文件,將其添加進(jìn)Qt幫助文件,如圖,點(diǎn)擊添加按鈕,在下載的QCustomPlot源碼包中找到qch為后綴的文件進(jìn)行添加。

Qt曲線圖模塊QCustomPlot庫(kù)簡(jiǎn)單例子詳解

1.建立Qt工程,將下載的QCustomPlot源碼中的qcustomplot.h和qcustomplot.cpp文件復(fù)制到項(xiàng)目所在文件夾,如圖

2.QtCreater中,右鍵項(xiàng)目,添加現(xiàn)有文件,如圖,選擇qcustomplot.h和qcustomplot.cpp添加:

3.在UI界面拖入一個(gè)widget,如圖

4.UI界面右鍵widget,點(diǎn)擊提升為,選擇全局包含,如圖

這里強(qiáng)調(diào)一下:Qt提升控件時(shí),通常提升的類名稱中,每個(gè)單詞的首字母必須大寫【與Qt控件命名規(guī)則保持一致,各種第三方控件都采用這種命名格式】,否則無法識(shí)別,如這里必須寫成QCustomPlot而不能寫成Qcustomplot或qcustomplot

另一種簡(jiǎn)單方法是將被提升類的名稱直接復(fù)制過來粘貼。

5.選擇項(xiàng)目的.pro文件,添加printsupport,如圖,QCustomPlot包含了一些打印的東西,如果沒有這一步,程序會(huì)報(bào)錯(cuò)

6.最后一步,編寫代碼:

頭文件:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "qcustomplot.h"
namespace Ui {
class Widget;
}

class Widget : public QWidget
{
  Q_OBJECT

public:
  explicit Widget(QWidget *parent = 0);
  ~Widget();

private:
  Ui::Widget *ui;
};

#endif // WIDGET_H

cpp文件:

#include "widget.h"
#include "ui_widget.h"
#include <QVector>
Widget::Widget(QWidget *parent) :
  QWidget(parent),
  ui(new Ui::Widget)
{
  ui->setupUi(this); 
    //設(shè)定背景為黑色
    //ui->widget->setBackground(QBrush(Qt::black));
    //設(shè)定右上角圖形標(biāo)注可見
    ui->widget->legend->setVisible(true);
    //設(shè)定右上角圖形標(biāo)注的字體
    ui->widget->legend->setFont(QFont("Helvetica", 9));
    QVector<double> x(101),y(101);
      //圖形為y=x^3
      for(int i=0;i<101;i++)
      {
        x[i] = i/5.0-10;
        y[i] = x[i]*x[i]*x[i];//qPow(x[i],3)
      }
      //添加圖形
      ui->widget->addGraph();
      //設(shè)置畫筆
      ui->widget->graph(0)->setPen(QPen(Qt::blue));
      //設(shè)置畫刷,曲線和X軸圍成面積的顏色
       ui->widget->graph(0)->setBrush(QBrush(QColor(255,255,0)));
      //設(shè)置右上角圖形標(biāo)注名稱
      ui->widget->graph(0)->setName("曲線");
      //傳入數(shù)據(jù),setData的兩個(gè)參數(shù)類型為double
      ui->widget->graph(0)->setData(x,y);

      QVector<double> temp(20);
      QVector<double> temp1(20);
      //圖形為y = 100*x;
      for(int i=0;i<20;i++)
      {
        temp[i] = i;
        temp1[i] = 10*i+10;
      }
      //添加圖形
      ui->widget->addGraph();
      //設(shè)置畫筆
      ui->widget->graph(1)->setPen(QPen(Qt::red));
      //設(shè)置畫刷,曲線和X軸圍成面積的顏色
      //ui->widget->graph(1)->setBrush(QBrush(QColor(0,255,0))); 
      //傳入數(shù)據(jù)
      ui->widget->graph(1)->setData(temp,temp1); 

      /*-------------------------------------------*/
      //畫動(dòng)態(tài)曲線時(shí),傳入數(shù)據(jù)采用addData,通過定時(shí)器多次調(diào)用,并在之后調(diào)用ui->widget->replot(); 
      //動(dòng)態(tài)曲線可以通過另一種設(shè)置坐標(biāo)的方法解決坐標(biāo)問題: 
      //setRange ( double position, double size, Qt::AlignmentFlag alignment ) 
      //參數(shù)分別為:原點(diǎn),偏移量,對(duì)其方式,有興趣的讀者可自行嘗試,歡迎垂詢 
      /*-------------------------------------------*/ 

      //設(shè)置右上角圖形標(biāo)注名稱
      ui->widget->graph(1)->setName("直線");
      //設(shè)置X軸文字標(biāo)注
      ui->widget->xAxis->setLabel("time");
      //設(shè)置Y軸文字標(biāo)注
      ui->widget->yAxis->setLabel("temp/shidu");
      //設(shè)置X軸坐標(biāo)范圍
      ui->widget->xAxis->setRange(-20,20);
      //設(shè)置Y軸坐標(biāo)范圍
      ui->widget->yAxis->setRange(-1100,1100);
      //在坐標(biāo)軸右側(cè)和上方畫線,和X/Y軸一起形成一個(gè)矩形
      ui->widget->axisRect()->setupFullAxesBox(); 
}

Widget::~Widget()
{
  delete ui;
}

效果圖如下:

本文主要講解了Qt曲線圖模塊QCustomplot庫(kù)生成靜態(tài)、動(dòng)態(tài)曲線詳細(xì)教程圖解,更多關(guān)于Qt開發(fā)知識(shí)請(qǐng)查看下面的相關(guān)鏈接

相關(guān)文章

  • C++?數(shù)據(jù)結(jié)構(gòu)超詳細(xì)講解順序表

    C++?數(shù)據(jù)結(jié)構(gòu)超詳細(xì)講解順序表

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示
    2022-03-03
  • C++ Boost System超詳細(xì)講解

    C++ Boost System超詳細(xì)講解

    Boost是為C++語言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱
    2022-11-11
  • 教你5分鐘輕松搞定內(nèi)存字節(jié)對(duì)齊

    教你5分鐘輕松搞定內(nèi)存字節(jié)對(duì)齊

    隨便google一下,人家就可以跟你解釋的,一大堆的道理,我們沒怎么多時(shí)間,討論為何要對(duì)齊.直入主題,怎么判斷內(nèi)存對(duì)齊規(guī)則,sizeof的結(jié)果怎么來的,請(qǐng)牢記以下3條原則
    2013-09-09
  • Qt creator中項(xiàng)目的構(gòu)建配置和運(yùn)行設(shè)置的步驟

    Qt creator中項(xiàng)目的構(gòu)建配置和運(yùn)行設(shè)置的步驟

    使用 Qt Creator 集成開發(fā)環(huán)境構(gòu)建和運(yùn)行程序是一件非常簡(jiǎn)單的事情,一個(gè)按鈕或者一個(gè)快捷鍵搞定全部,本文主要介紹了Qt creator中項(xiàng)目的構(gòu)建配置和運(yùn)行設(shè)置的步驟,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C/C++: Inline function, calloc 對(duì)比 malloc

    C/C++: Inline function, calloc 對(duì)比 malloc

    以下是對(duì)c/c++中的malloc函數(shù)與calloc函數(shù)的區(qū)別以及它們之間的聯(lián)系進(jìn)行了介紹,需要的朋友可以過來參考下
    2016-07-07
  • C語言操作XML文件的技術(shù)和方法

    C語言操作XML文件的技術(shù)和方法

    XML因其靈活性和標(biāo)準(zhǔn)化特性,被廣泛應(yīng)用于數(shù)據(jù)交換、配置文件、Web服務(wù)等領(lǐng)域,C語言作為一種高效、底層的編程語言,在處理XML數(shù)據(jù)方面也有廣泛的應(yīng)用,本文將深入探討C語言操作XML的技術(shù)和方法,需要的朋友可以參考下
    2025-03-03
  • C++實(shí)現(xiàn)LeetCode(200.島嶼的數(shù)量)

    C++實(shí)現(xiàn)LeetCode(200.島嶼的數(shù)量)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(200.島嶼的數(shù)量),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言中各種運(yùn)算類型全面總結(jié)

    C語言中各種運(yùn)算類型全面總結(jié)

    C語言運(yùn)算符是說明特定操作的符號(hào),它是構(gòu)造C語言表達(dá)式的工具,C語言的運(yùn)算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運(yùn)算符處理
    2022-04-04
  • 一文詳解C++關(guān)鍵詞auto的用法

    一文詳解C++關(guān)鍵詞auto的用法

    在早期C/C++中auto的含義是:使用auto修飾的變量,是具有自動(dòng)存儲(chǔ)器的局部變量,但遺憾的是一直沒有人去使用它,在 C++11中,auto不再是一個(gè)存儲(chǔ)類型指示符,而是作為一個(gè)新的類型指示符來指示編譯器,本文將給大家詳細(xì)的介紹一下C++關(guān)鍵詞auto的用法,需要的朋友可以參考下
    2024-02-02
  • C++連接并使用MySQL數(shù)據(jù)庫(kù)

    C++連接并使用MySQL數(shù)據(jù)庫(kù)

    這篇文章主要為大家詳細(xì)介紹了C++連接并使用MySQL數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07

最新評(píng)論

托克逊县| 农安县| 汶上县| 双牌县| 连平县| 澄城县| 马公市| 永春县| 黔西| 揭西县| 铁力市| 广平县| 呼图壁县| 建昌县| 卢龙县| 郓城县| 湘西| 泉州市| 葫芦岛市| 武隆县| 县级市| 金湖县| 墨玉县| 大宁县| 平遥县| 垣曲县| 五台县| 九台市| 汉中市| 永福县| 陆丰市| 东乡县| 惠安县| 措勤县| 双流县| 玉田县| 会宁县| 化州市| 昌图县| 平武县| 双城市|