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