网上说qwtplotmarker标签可以自定义任何形状,我想实现以qwtplotcurve曲线画出的某一个点为中心做一个圆形,或者是矩形。类似于特征点标注。不知道是不是个人理解问题,实际上无法实现我想要的功能。因为不知道难度,暂时悬赏5元,若难度较高,会追加。效果图如下所示。另,本人用的是qt5.6.2版本。qwt 6.1.4版本。
1条回答 默认 最新
- hantaocn 2023-03-14 09:33关注
根据您的需求描述和效果图,可以使用QwtPlotMarker进行自定义绘制。您可以通过继承QwtSymbol类来创建自己的符号,然后在QwtPlotMarker中设置该符号并指定位置。
以下是一个简单的示例,通过继承QwtSymbol实现一个圆形符号:
class CircleSymbol: public QwtSymbol { public: CircleSymbol() { setSize(QSize(10, 10)); } virtual void drawSymbol(QPainter *painter, const QPointF ¢er) const { painter->drawEllipse(center, 5, 5); } };
然后在需要显示标记的地方,使用QwtPlotMarker进行绘制:
// 创建曲线和数据 QwtPlotCurve *curve = new QwtPlotCurve("Curve"); QVector<QPointF> points; points << QPointF(1.0, 2.0) << QPointF(2.0, 3.0) << QPointF(3.0, 4.0); curve->setSamples(points); // 创建标记并设置符号和位置 QwtPlotMarker *marker = new QwtPlotMarker(); marker->setSymbol(new CircleSymbol()); marker->setValue(QPointF(2.0, 3.0)); // 添加曲线和标记到绘图区域 curve->attach(plot); marker->attach(plot);
这个示例中,我们先创建了一个QwtPlotCurve对象,同时添加了一些数据点。然后基于CircleSymbol类实现了一个圆形符号,并将其设置到QwtPlotMarker对象上。最后,我们将QwtPlotCurve和QwtPlotMarker对象都附加到QwtPlot对象中,即可在绘图区域上显示出来。
您可以根据需要修改CircleSymbol类的实现,以绘制不同形状的符号,例如矩形等。希望这可以帮助到您,如果您有任何其他问题,请随时问我。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用
悬赏问题
- ¥15 echarts动画效果失效的问题。官网下载的例子。
- ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
- ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
- ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
- ¥30 关于<main>标签页面跳转的问题
- ¥80 部署运行web自动化项目
- ¥15 腾讯云如何建立同一个项目中物模型之间的联系
- ¥30 VMware 云桌面水印如何添加