Qwt使用之QwtPlot

来源:互联网 发布:网络教育专科注册 编辑:程序博客网 时间:2024/06/11 17:00
QwtPlot是用来绘制二维图像的widget。在它的画板上可以无限制的显示绘画组件。绘画组件可以是曲线(QwtPlotCurve)、标记(QwtPlotMarker)、网格(QwtPlotGrid)、或者其它从QwtPlotItem继承的组件。
 

QwtPlot拥有4个axes(轴线)

yLeft 
Y axis left of the canvas.yRight Y axis right of the canvas.xBottom X axis below the canvas.xTop X axis above the canvas.
 

常用函数接口

setAxisTitle设置轴标题enableAxis主要是显示xTop,yRight坐标轴setAxisMaxMajor设置某个某个坐标轴扩大比例尺的最大间隔数目setAxisMaxMinor设置某个某个坐标轴缩小比例尺的最大间隔数目setAxisScale禁用自动缩放比例尺,为某个坐标轴指定一个修改的比例尺insertLegend添加图例(标注)
 

常用组件

QwtPlotCurve曲线QwtPlotMarker标记QwtPlotGrid网格QwtPlotHistogram直方图other从QwtPlotItem继承的组件
 
QwtPlotItemplot能显示的类,如果想要实现自己绘画图形,要继承此类实现rtti和draw接口QwtPlotPanner平移器    (用鼠标左键平移)QwtPlotMagnifier 放大器    (用鼠标滚轮缩放)QwtPlotCanvas画布QwtScaleMap比例图---可以提供一个逻辑区域到实际区域的坐标转换QwtScaleWidget比例窗口QwtScaleDiv比例布局QwtLegent标注QwtPlotLayout布局管理器QwtScaleDraw自画坐标轴
 
 

QwtPlotCure简介

 
常见接口
setPen设置画笔setData设置曲线的数据setStyle设置曲线形式,点、直线、虚线等等setCurveAttribute设置曲线属性,一般设置Fittedattch把曲线附加到QwlPlot上
 
下面看一个小例子,结果如下:
 
 
 
源代码:

 

[cpp] view plaincopyprint?
  1. #include <QtGui/QApplication>  
  2. #include <Qt/qmath.h>  
  3. #include <QVector>  
  4. #include <qwt_plot.h>  
  5. #include <qwt_plot_curve.h>  
  6. #include <qwt_plot_magnifier.h>  
  7. #include <qwt_plot_panner.h>  
  8. #include <qwt_legend.h>  
  9.   
  10. int main(int argc, char *argv[])  
  11. {  
  12.     QApplication a(argc, argv);  
  13.   
  14.     QwtPlot plot(QwtText("CppQwtExample1"));  
  15.     plot.resize(640,400);  
  16.     //设置坐标轴的名称  
  17.     plot.setAxisTitle(QwtPlot::xBottom, "x->");  
  18.     plot.setAxisTitle(QwtPlot::yLeft, "y->");  
  19.     //设置坐标轴的范围  
  20.     plot.setAxisScale(QwtPlot::xBottom, 0.0, 2.0 * M_PI);  
  21.     plot.setAxisScale(QwtPlot::yLeft, -1.0, 1.0);  
  22.     //设置右边标注  
  23.     plot.insertLegend(new QwtLegend(), QwtPlot::RightLegend);  
  24.   
  25.     //使用滚轮放大/缩小  
  26.     (voidnew QwtPlotMagnifier( plot.canvas() );  
  27.   
  28.     //使用鼠标左键平移  
  29.     (voidnew QwtPlotPanner( plot.canvas() );  
  30.   
  31.     //计算曲线数据  
  32.     QVector<double> xs;  
  33.     QVector<double> ys;  
  34.     for (double x = 0; x < 2.0 * M_PI; x+=(M_PI / 10.0))  
  35.     {  
  36.         xs.append(x);  
  37.         ys.append(qSin(x));  
  38.     }  
  39.     //构造曲线数据  
  40.     QwtPointArrayData * const data = new QwtPointArrayData(xs, ys);  
  41.     QwtPlotCurve curve("Sine");  
  42.     curve.setData(data);//设置数据  
  43.     curve.setStyle(QwtPlotCurve::Lines);//直线形式  
  44.     curve.setCurveAttribute(QwtPlotCurve::Fitted, true);//是曲线更光滑  
  45.     curve.setPen(QPen(Qt::blue));//设置画笔  
  46.   
  47.     curve.attach(&plot);//把曲线附加到plot上  
  48.   
  49.     plot.show();  
  50.   
  51.     return a.exec();  

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 10个月宝宝厌食怎么办 2个月宝宝厌食怎么办 宝宝吃母乳不长体重怎么办 9个月宝宝不长牙怎么办 3个月宝宝过胖怎么办 宝宝长的很慢怎么办 想一个月瘦20斤怎么办 山药弄胳膊上痒怎么办 手碰山药很痒怎么办 手摸了山药很痒怎么办 手切了山药很痒怎么办 山药弄的身上痒怎么办 疣迪去除疣体怎么办 尖锐湿庞出血了怎么办 尿道口周围烂了怎么办 尖锐湿庞复发了怎么办 宝宝脸上长湿疹怎么办如何治疗 孕妇得尖锐湿庞怎么办 痘痘留下的小坑怎么办 花洒固定座坏了怎么办 脚上起水泡烂了怎么办 月经期吃了芒果怎么办 月经量少又黑怎么办 来月经黑色的血怎么办 月经来的是黑色怎么办 来月经有血块是怎么办 月经又少又黑怎么办 来月经发黑又少怎么办 月经血发黑量少怎么办 做人流后肚子胀怎么办 怀孕见红了肚子不痛怎么办 月经来是黑色的怎么办 怀孕了长了痔疮怎么办 怀孕了有外痔疮怎么办 孕妇长痔疮很痛怎么办 孕9个月尿路感染怎么办 旁边有人尿不出来怎么办 外阴破皮了应该怎么办 脸上长脂肪粒怎么办怎么能消除 挤黑头留下的坑怎么办 长痘留下的坑怎么办