现在的位置: 首页 > 综合 > 正文

QwtPlot解读—from Qwt-6.6.1

2018年05月14日 ⁄ 综合 ⁄ 共 4413字 ⁄ 字号 评论关闭
QwtPlot--from Qwt-6.6.1


    QwtPlot继承自QFrame和QwtPlotDict.QwtPlot是一个二维绘图部件,它只是一个视图窗口,真正的绘图设备是
它的中心部件QwtPlotCanvas.在QwtPlot的画布上可以显示不限数量的基地图元项,图元项可以是QwtPlotCurve,
QwtPlotMarker,QwtPlotGrid或任意从QwtPlotItem派生出的子类.一个QwtPlot有4条轴线,没一个轴线都可通过
setQwtScaleDiv或根据绘制的项调用QwtScaleEngine.
QwtPlot自身不能添加基地图元项,QwtPlotItem决定自己被添加到哪个QwtPlot: 
void attatch(QwtPlot *plot);	void detach();
    QwtPlotDict是一个item的字典类,用于管理添加到QwtPlot上的所有项。QwtPlotDict按照z值组织items。如果
autoDelegate()为真,所有依附的项会在QwtPlotDict的析构函数中被删除。
    QwtPlotCanvas类继承自QFrame,是QwtPlot的画布。

/****************************************************************************************/


公有类型:

enum Axis{
    yLeft,yRight,xBottom,xTop,
    axisCnt
};  //坐标轴索引

公有槽:

virtual void replot(); //重绘地基
void autoRefresh(); //如果autoReplot()为真,重绘地基

信号:

void itemAttached(QwtPlotItem *plotItem,bool on);
void legendDataChanged(const QVariant &itemInfo,
                       const QList<QwtLegendDatta>&data);//图表数据改变

公有成员函数:

 QwtPlot (QWidget ∗=NULL)
 QwtPlot (const QwtText &title, QWidget ∗=NULL)
 virtual ∼QwtPlot ()

 void applyProperties (const QString &); //应用属性
 QString grabProperties () const; //获取属性
 void setAutoReplot (bool=true); //设置或重设自动地基
 bool autoReplot () const; //判断是否自动重设地基
 void setPlotLayout (QwtPlotLayout ∗); //设置一个新的地基布局
 QwtPlotLayout  plotLayout (); //获取地基布局
 const QwtPlotLayout  plotLayout () const; //获取地基布局
 void setTitle (const QString &); //设置标题
 void setTitle (const QwtText &t); //设置标题
 QwtText title () const; //获取标题文本
 QwtTextLabel  titleLabel (); //获取标题标签
 const QwtTextLabel  titleLabel () const; //const
 void setFooter (const QString &); //QString设置脚注
 void setFooter (const QwtText &t); //QwtText设置脚注
 QwtText footer () const; //获取脚注文本QwtText;
 QwtTextLabel  footerLabel (); //获取脚注文本标签
 const QwtTextLabel  footerLabel () const; //const
 void setCanvas (QWidget ∗); //设置画布
 QWidget  canvas (); //获取画布
 const QWidget  canvas () const; //const
 void setCanvasBackground (const QBrush &); //设置画布背景
 QBrush canvasBackground () const; //获取画布背景
 virtual QwtScaleMap canvasMap (int axisId) const;
 double invTransform (int axisId, int pos) const;
 double transform (int axisId, double value) const; //指定一个坐标值
 QwtScaleEngine  axisScaleEngine (int axisId);
 const QwtScaleEngine  axisScaleEngine (int axisId) const
 void setAxisScaleEngine (int axisId, QwtScaleEngine ∗)
 void setAxisAutoScale (int axisId, bool on=true); //启用指定轴线自动比例间隔
 bool axisAutoScale (int axisId) const;
 void enableAxis (int axisId, bool tf=true); //是否启用了一个指定的轴线
 bool axisEnabled (int axisId) const
 void setAxisFont (int axisId, const QFont &f); //设置轴线的字体
 QFont axisFont (int axisId) const
 void setAxisScale (int axisId, double min, double max, double step=0)
//为指定的轴线禁用自动比例尺和固定的比例尺
 void setAxisScaleDiv (int axisId, const QwtScaleDiv &)
//为指定的轴线启用自动比例尺间隔和固定的比例尺间隔值
 void setAxisScaleDraw (int axisId, QwtScaleDraw ∗)
 double axisStepSize (int axisId) const; //返回在setAxisScale中设置的步长值
 QwtInterval axisInterval (int axisId) const; //返回当前轴线的比例尺内部间隔
 const QwtScaleDiv & axisScaleDiv (int axisId) const; //返回指定轴线的比例间隔
 const QwtScaleDraw  axisScaleDraw (int axisId) const; //返回指定轴线的比例尺绘制类
 QwtScaleDraw  axisScaleDraw (int axisId)
 const QwtScaleWidget  axisWidget (int axisId) const; //返回轴线控件(比例尺控件)
 QwtScaleWidget  axisWidget (int axisId)
 void setAxisLabelAlignment (int axisId, Qt::Alignment); //设置轴线标签排列方式
 void setAxisLabelRotation (int axisId, double rotation); //设置轴线标签旋转角度
 void setAxisTitle (int axisId, const QString &); //设置轴线标题
 void setAxisTitle (int axisId, const QwtText &)
 QwtText axisTitle (int axisId) const;     //返回轴线标题
 void setAxisMaxMinor (int axisId, int maxMinor); //设置指定轴线的较小比例尺间隔的最大值
 int axisMaxMinor (int axisId) const
 void setAxisMaxMajor (int axisId, int maxMajor); //设置指定轴线的主要比例尺间隔的最大值
 int axisMaxMajor (int axisId) const
 void insertLegend (QwtAbstractLegend ∗, LegendPosition=QwtPlot::RightLegend,
                     double ratio=-1.0); //插入图例
 QwtAbstractLegend  legend ()
 const QwtAbstractLegend  legend () const
 void updateLegend ();
 void updateLegend (const QwtPlotItem ∗);  //更新图例
 virtual QSize sizeHint () const
 virtual QSize minimumSizeHint () const
 virtual void updateLayout ();     //调整基地内容和它当前大小匹配
 virtual void drawCanvas (QPainter ∗)
 void updateAxes ();       //重建轴线比例尺
 void updateCanvasMargins ();  //更新画布边缘
 virtual void getCanvasMarginsHint (const QwtScaleMap maps[], const QRectF &canvasRect,
                                     double &left,double &top, double &right, double &bottom) const
//计算画布边缘
 virtual bool event (QEvent ∗);    //增加布局请求的处理
 virtual bool eventFilter (QObject ∗, QEvent ∗);   //事件过滤
 virtual void drawItems (QPainter ∗, const QRectF &, const QwtScaleMap maps[axisCnt]) const
 virtual QVariant itemToInfo (QwtPlotItem ∗) const;  //在图例上构建一个可以表明基地项的信息
 virtual QwtPlotItem  infoToItem (const QVariant &) const

保护成员函数:

* virtual void sizeEvent(QResizeEvent *e);

静态保护成员函数:

static bool axisValid(int axisId);  //如果指定的轴线存在返回true

/****************************************************************************************/








抱歉!评论已关闭.