程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 收集和整理的Qt小程序--畫常用曲線與圖表

收集和整理的Qt小程序--畫常用曲線與圖表

編輯:關於C語言

Qt常用的圖表第三方庫,有Qwt和kdChart兩種,Qwt做的還是比較好一些,讓人感覺很專業,下面是在網上收集到的小程序,供大家參考和學習,也為自己進步做基礎。

使用QWT曲線庫時,在工程文件pro中加入以下路徑,否則不能編譯通過:

DEFINES += QWT_DLL
CONFIG += qwt
LIBS +=-L"D:/Qt/4.8.5/lib" -lqwtd             //換上你自己QWT路徑
INCLUDEPATH +=D:/Qt/4.8.5/include/QtQwt       //換上你自己QWT路徑

程序1:使用Qwt庫畫波形

#include <QtGui/QApplication>
#include <Qt/qmath.h>
#include <QVector>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_plot_magnifier.h>
#include <qwt_plot_panner.h>
#include <qwt_legend.h>
#include <qwt_point_data.h>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QwtPlot plot(QwtText("CppQwtExample1"));
    plot.resize(640,400);
    //設置坐標軸的名稱
    plot.setAxisTitle(QwtPlot::xBottom, "x->");
    plot.setAxisTitle(QwtPlot::yLeft, "y->");
    //設置坐標軸的范圍
    plot.setAxisScale(QwtPlot::xBottom, 0.0, 2.0 * M_PI);
    plot.setAxisScale(QwtPlot::yLeft, -1.0, 1.0);
    //設置右邊標注
    plot.insertLegend(new QwtLegend(), QwtPlot::RightLegend);
    //使用滾輪放大/縮小
    (void) new QwtPlotMagnifier( plot.canvas() );
    //使用鼠標左鍵平移
    (void) new QwtPlotPanner( plot.canvas() );
    //計算曲線數據
    QVector<double> xs;
    QVector<double> ys;
    for (double x = 0; x < 2.0 * M_PI; x+=(M_PI / 10.0))
    {
        xs.append(x);
        ys.append(qSin(x));
    }
    //構造曲線數據
    QwtPointArrayData * const data = new QwtPointArrayData(xs, ys);
    QwtPlotCurve curve("Sine");
    curve.setData(data);//設置數據
    curve.setStyle(QwtPlotCurve::Lines);//直線形式
    curve.setCurveAttribute(QwtPlotCurve::Fitted, true);//是曲線更光滑
    curve.setPen(QPen(Qt::blue));//設置畫筆
    curve.attach(&plot);//把曲線附加到plot上
    plot.show();
    return a.exec();
}


本文出自 “LinuxQt濟南高新區” 博客,請務必保留此出處http://qtlinux.blog.51cto.com/3052744/1318759

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved