Qt第三方库QCustomPlot——QCustomPlot解读

时间:2022-08-23 00:06:04

这个小部件类,对于QCustomPlot的所有方面都有所体现

下面阅读它的函数:

函数组织顺序为: 基本设置---添加图线---删除图线---添加额外Item---层次管理---坐标轴管理----导出图表

 QCustomPlot (QWidget *parent=0)

void setViewport (const QRect &rect)//视口设置,通常就是本部件所在的长宽
void setBackground (const QPixmap &pm)//在整个视口的最底层绘制图片,用作背景
void setBackground (const QPixmap &pm, bool scaled, Qt::AspectRatioMode mode=Qt::KeepAspectRatioByExpanding)
void setBackground (const QBrush &brush)
void setBackgroundScaled (bool scaled)//设置setBackground 所绘的图是否进行缩放以适应Viewport
void setBackgroundScaledMode (Qt::AspectRatioMode mode)//有Qt::IgnoreAspectRatio(忽略比例,缩放至适应视口),Qt::KeepAspectRatio(保持长宽比,直到一边最大至视口边缘)Qt::KeepAspectRatioByExpanding(保持长宽比,缩放至充满视口)
void setAntialiasedElements (const QCP::AntialiasedElements &antialiasedElements)//抗锯齿效果,对于各对象,都有默认设置,可通过本函数,改变默认不抗锯齿的元素,使它也抗。
void setAntialiasedElement (QCP::AntialiasedElement antialiasedElement, bool enabled=true)//更方便的开关
void setNotAntialiasedElements (const QCP::AntialiasedElements ¬AntialiasedElements)//设置不抗
void setNotAntialiasedElement (QCP::AntialiasedElement notAntialiasedElement, bool enabled=true)
void setAutoAddPlottableToLegend (bool on)//是否自动添加图形到图例,默认是
void setInteraction (const QCP::Interaction &interaction, bool enabled=true)//设置交互方式,如是否可拖动或缩放轴,是否可选中轴或图例等。
void setInteractions (const QCP::Interactions &interactions)
void setSelectionTolerance (int pixels)//选择公差设置,在多少像素中能选中某个元素
void setNoAntialiasingOnDrag (bool enabled)//拖动时是否也抗锯齿
void setPlottingHint (QCP::PlottingHint hint, bool enabled=true)//设置其它参数,如快速绘制线(损失质量),缓存轴的lable(提高效率)
void setPlottingHints (const QCP::PlottingHints &hints)
void setMultiSelectModifier (Qt::KeyboardModifier modifier)//要多选时的按键,默认Qt::ControlModifier,即ctrl

QRect viewport () const//与上述大致对应
QPixmap background () const
bool backgroundScaled () const
Qt::AspectRatioMode backgroundScaledMode () const
QCPLayoutGrid * plotLayout () const
QCP::AntialiasedElements antialiasedElements () const
QCP::AntialiasedElements notAntialiasedElements () const
bool autoAddPlottableToLegend () const
const QCP::Interactions interactions () const
int selectionTolerance () const
bool noAntialiasingOnDrag () const
QCP::PlottingHints plottingHints () const
Qt::KeyboardModifier multiSelectModifier () const


QCPAbstractPlottable * plottable (int index)//所有添加的图线都自动加了索引,按先后顺序
QCPAbstractPlottable * plottable ()
bool addPlottable (QCPAbstractPlottable *plottable)//添加除graph线外的其它种类型的曲线或图
bool removePlottable (QCPAbstractPlottable *plottable)
bool removePlottable (int index)
int clearPlottables ()
int plottableCount () const
QList< QCPAbstractPlottable * > selectedPlottables () const//返回选中的线
QCPAbstractPlottable * plottableAt (const QPointF &pos, bool onlySelectable=false) const//返回某个点是否有图线
bool hasPlottable (QCPAbstractPlottable *plottable) const

QCPGraph * addGraph (QCPAxis *keyAxis=0, QCPAxis *valueAxis=0)//为Graph线留的特殊接口,因Graph是最常用的
bool removeGraph (QCPGraph *graph)
bool removeGraph (int index)
QCPGraph * graph (int index) const
QCPGraph * graph () const
int clearGraphs ()
int graphCount () const
QList< QCPGraph * > selectedGraphs () const


bool addItem (QCPAbstractItem *item)//添加一些附加item,如箭头等
bool removeItem (QCPAbstractItem *item)
bool removeItem (int index)
int clearItems ()
int itemCount () const
QCPAbstractItem * item (int index) const
QCPAbstractItem * item () const
QList< QCPAbstractItem * > selectedItems () const
QCPAbstractItem * itemAt (const QPointF &pos, bool onlySelectable=false) const
bool hasItem (QCPAbstractItem *item) const
QCPLayoutElement * layoutElementAt (const QPointF &pos) const

QCPLayer * layer (const QString &name) const//QCustomPlot分层的实现与管理
QCPLayer * layer (int index) const
QCPLayer * currentLayer () const
bool setCurrentLayer (const QString &name)
bool setCurrentLayer (QCPLayer *layer)
int layerCount () const
bool addLayer (const QString &name, QCPLayer *otherLayer=0, LayerInsertMode insertMode=limAbove)
bool removeLayer (QCPLayer *layer)
bool moveLayer (QCPLayer *layer, QCPLayer *otherLayer, LayerInsertMode insertMode=limAbove)

QCPAxisRect * axisRect (int index=0) const
QList< QCPAxisRect * > axisRects () const
QList< QCPAxis * > selectedAxes () const
QList< QCPLegend * > selectedLegends () const
int axisRectCount () const

bool savePdf (const QString &fileName, bool noCosmeticPen=false, int width=0, int height=0, const QString &pdfCreator="", const QString &pdfTitle="")//将图表导出成各种格式
bool savePng (const QString &fileName, int width=0, int height=0, double scale=1.0, int quality=-1)
bool saveJpg (const QString &fileName, int width=0, int height=0, double scale=1.0, int quality=-1)
bool saveBmp (const QString &fileName, int width=0, int height=0, double scale=1.0)
bool saveRastered (const QString &fileName, int width, int height, double scale, const char *format, int quality=-1)
QPixmap toPixmap (int width=0, int height=0, double scale=1.0)
void toPainter (QCPPainter *painter, int width=0, int height=0)

//三个槽
Q_SLOT void replot (QCustomPlot::RefreshPriority refreshPriority=QCustomPlot::rpHint)//重新生成图表
Q_SLOT void rescaleAxes (bool onlyVisiblePlottables=false)
Q_SLOT void deselectAll ()//取消选择