在QCustomPlot中,所有的Item都继承自 QCPAbstractItem ,QCustomPlot给我们提供了一些Item

  • QCPItemBracket 括号Item
  • QCPItemCurve 曲线Item,其实就是贝塞尔曲线
  • QCPItemEllipse 椭圆/圆Item
  • QCPItemLine 线段Item
  • QCPItemPixmap 图片Item
  • QCPItemRect 矩形Item
  • QCPItemStraightLine 直线Item
  • QCPItemText 文字Item
  • QCPItemTracer 追踪者Item

QCPAbstractItem 默认存在于 QCustomPlot 的当前层中,默认的当前层为 main ,我们可以通过 setClipToAxisRect setClipAxisRect 设置Item裁切于某个特定的轴矩形,将 setClipToAxisRect 设置为false则Item裁切于 QCustomPlot

QCPItemAnchor与QCPItemPosition联系与区别

QCPItemPosition继承自QCPItemAnchor,QCPItemAnchor用于给QCPItemPosition定位用的,QCPItemPosition则表示了Item的位置,一个Item可以有多个QCPItemAnchor和QCPItemPosition
我们主要理解QCPItemPosition是如何决定Item的位置的,它有四种位置类型:

  • ptAbsolute 按像素的方式
  • ptViewportRatio 按QCustomPlot可视区域的比例
  • ptAxisRectRatio 按其存在的轴矩形的比例(通过 setAxisRect 函数设置轴矩形)
  • ptPlotCoords 按坐标系位置(通过 setAxes 函数轴)

可以通过 setType setTypeX setTypeY 函数设置x、y方向的位置类型,然后通过 setCoords 设置其位置, setCoords 是跟 setType 设置的类型相关的,Item的位置还跟它锚定的父锚点QCPItemAnchor相关,可以通过 setParentAnchor setParentAnchorX setParentAnchorY 函数设置x、y方向的父锚点,父锚点决定了其起点位置, 当设置父锚点后,type类型会变为ptAbsolute按像素的方式

我们可以直接通过 setPixelPosition 设置Item的像素位置,而不用管 setType 的类型是什么,通过 pixelPosition 返回Item的像素位置

以下图片空心圆为QCPItemAnchor,实心圆为QCPItemPosition

QCPItemBracket

QCPItemBracket
可以看到QCPItemBracket通过 left right 决定其位置,而 center 则用于给其它的QCPItemPosition定位用的,QCPItemBracket通过 setLength 设置 left / right center 的垂直距离(像素)
setLength设置的长度

QCPItemBracket有四种类型:

  • bsSquare 中括号
  • bsRound 小括号
  • bsCurly 大括号
  • bsCalligraphic 实体大括号

QCPItemCurve

QCPItemCurve
可以看到QCPItemCurve有四个点决定其位置起点 start 和终点 end 以及两个控制点 startDir endDir ,理解QCPItemCurve的位置需要我们对贝塞尔曲线有所理解

QCPItemText

QCPItemText
可以看到QCPItemText由 position 决定其位置,但是 position 不一定是在文字中心的位置,我们可以通过 setPositionAlignment 设置 position 对齐在文字的哪一个地方,比如要对齐在 topLeft 的位置:setPositionAlignment(Qt::AlignLeft)

QCPItemTracer

tracer是比较常用的一个Item,它主要用来实时跟踪 QCPGraph 的某个数据点,QCPItemTracer也是用一个 position 来决定其位置

QCPItemTracer有五种风格

  • tsNone 不显示tracer
  • tsPlus 加号
  • tsCrosshair 十字线,横跨整个轴矩形
  • tsCircle 圆
  • tsSquare 方块

QCPItemTracer通过函数 setGraph setGraphKey 设置要跟踪的图表以及数据点, setGraph(nullptr) 可以使QCPItemTracer得位置是任意的。QCPItemTracer的位置还跟 setInterpolating 函数有关,当 setInterpolating 为true时,启用线性插值,这时候QCPItemTracer的位置是精确地在我们设置的位置,并且对 value 轴的值进行线性插值;为false的时候QCPItemTracer的位置是最接近于这个位置的 key 值点的位置

文章目录QCPItemAnchor与QCPItemPosition联系与区别QCPItemBracketQCPItemCurveQCPItemTextQCPItemTracer在QCustomPlot中,所有的Item都继承自QCPAbstractItem,QCustomPlot给我们提供了一些ItemQCPItemBracket 括号ItemQCPItemCurve 曲线Item,其实...
参考 七 六 伍 的https://blog.csdn.net/weixin_39328406/article/details/112183162这篇文章。 因为编译不通过,对其中的内容做了修改,编译报错和修改的地方在这篇文章下的评论中已详细写出。 本zip是修改后通过编译的.h 和.cpp文件。 !!!!!!!!!!!!!!!!!!!!!!!! *********使用方法也请参考前面七六伍的链接************ !!!!!!!!!!!!!!!!!!!!!!!!
Item s:Supplementary graphical elements Item s辅助图形元素 QCustomPlot 允许放置和锚定图形元素比如文本,箭头,线,矢量图形等等。他们是基于抽象基类QCPAbstract Item 。关于 Item 机制的细节描述和访问内建的 item s可以在QCPAbstract Item 文档中找到。 使用箭头和文本的简单例子 // add the te
看官网上的例子:// add the text label at the top: QCP Item Text *textLabel = new QCP Item Text(customPlot); customPlot->add QCP Item Tracer *tracer; //游标 QCP Item Text *textLabel; //图标标签 QCP Item Text *tracerLabel; //游标标签 QCPGraph *tracerGraph;//游标要吸附哪个graph 设置画笔工具 QPen pen; //新建一个画笔 pen.setWidth(2); pen.setColor(Qt::green);
在QT下开发虚拟示波器程序时,需要用到曲线显示控件,开源的有 QCustomPlot 和QWT,其中 QCustomPlot 可以直接利用其源码,而不需要使用链接库的方式,因此,得到了大量的应用,为了简化,我使用了 QCustomPlot 1.3.0的源代码并进行了修改实现完整的功能。 1、X轴和Y轴坐标迹线 常见示波器上,可以设置X轴和Y轴坐标迹线并且可以移动。为此,在借鉴网上代码(http://www.manongjc.com/article/22306.html 基于 QCustomPlot 绘图...
回答: qcustomplot 是一个用于绘制图表的开源库。要在项目中使用 qcustomplot ,首先需要将下载的文件解压并将 qcustomplot .h和 qcustomplot .cpp添加到项目中。然后,在使用 qcustomplot 的文件中包含头文件#include " qcustomplot .h"。\[1\] 如果在实时切换中发现 qcustomplot 中的文本无法实时翻译,可以在窗口的changeEvent事件中检查语言事件,并对 qcustomplot 进行重绘。具体代码如下: if(event->type() == QEvent::LanguageChange){ ui->retranslateUi(this); ui->customPlot->replot(); return; QWidget::changeEvent(event);\[2\] 此外,如果需要查看 qcustomplot 的帮助文档,可以将下载的documentation文件夹下的 qcustomplot .qch文件拷贝到Qt的文档目录下,并在Qt Creator的工具->选项->帮助->文档中添加该文件。这样,按下F1键就可以跳转到 QCustomPlot 的帮助文档了。\[3\] #### 引用[.reference_title] - *1* *3* [ QCustomPlot 基础教程(一)—— QCustomPlot 的安装及基础实例](https://blog.csdn.net/didi_ya/article/details/120105121)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_ item ] - *2* [ qcustomplot 中英文翻译问题](https://blog.csdn.net/dongh_bfwm/article/details/128370855)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_ item ] [ .reference_list ]
FADEAWAY114: 请问在make PythonAPI时出现这个怎么解决呢? 使用“2”个参数调用“DownloadFile”时发生异常:“远程服务器返回错误: (404) 未找到。” 所在位置 行:1 字符: 1 + (New-Object System.Net.WebClient).DownloadFile('https://www.zlib.net/ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) 【】, MethodInvocationException + FullyQualifiedErrorId : WebException QCustomPlot之数据选择(十八) github上怎么没更新了? QCustomPlot之K线图(十七) 都在上面了吧 QCustomPlot之K线图(十七) IAS.Trabe: 博主你好啊,请问有这个示例的源文件吗,求 QCustomPlot之瀑布图(十五) 你看上一篇文章