如何在QtChart中绘制出三角型图符?

angel_lys 2017-11-15 12:15:45
目前QScatterSeries::MarkerShape仅有两种形状支持:MarkerShapeCircle和MarkerShapeRectangle,如果想要绘制三角形图符,似乎只能通过将三角形图案写入QImage,然后将QImage传给QScatterSeries的QBrush来实现,但如果这样做以后,再通过setBorderColor或者setPen绘制图符边框时,绘制的仍然是圆形或正方形的边框,请问各位专家,是否有方案,可以绘制出三角形图符,且能正确绘制出它的边框?
示意效果图如下:

没什么分数了,各位大神海涵。
...全文
805 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
oncaller 2018-11-14
  • 打赏
  • 举报
回复
绘制图形的Border QPen pen pen .setWidth(你要的像素int型) pen.setColor(颜色值)。 QPainter painter painter.setpen(pen); panter.draw...(你要的图形) 自然这个图形就有边框出来了吧。。。。。。
Eric4Cui 2018-01-04
  • 打赏
  • 举报
回复
引用 9 楼 angel_lys 的回复:
通过重写QtChart源代码解决了,多谢楼上各位。
楼主,你是怎么更改的?我也有这个需求。希望能分享一下。
Liuzwang 2017-11-16
  • 打赏
  • 举报
回复
楼主,一楼说的是对的。想要什么形状,图形以外全部设置成透明的。
张小飞Official 2017-11-16
  • 打赏
  • 举报
回复
QPolygon 不可以么?我记得这是个绘制多边形的
习惯就好zz 2017-11-16
  • 打赏
  • 举报
回复
搞一张背景图片呗,不是三角的部分是透明的
angel_lys 2017-11-16
  • 打赏
  • 举报
回复
通过重写QtChart源代码解决了,多谢楼上各位。
angel_lys 2017-11-16
  • 打赏
  • 举报
回复
引用 7 楼 ch122633 的回复:
[quote=引用 4 楼 angel_lys 的回复:] [quote=引用 1 楼 ch122633 的回复:] 搞一张背景图片呗,不是三角的部分是透明的
这种方式不行,因为QScatterSeries的MarkerShape只有两种,正方形和圆形,虽然可以使用一个背景透明的三角形图案作为图符,但是如果绘制边框的话,还是会绘制成正方形或圆形。[/quote] 把边框一起画进图片里,设置成无边框[/quote] 但是在某些情况下还是需要无边框的图符的,这样处理还是解决不了,我正在尝试扩展QtChart源代码。
习惯就好zz 2017-11-16
  • 打赏
  • 举报
回复
引用 4 楼 angel_lys 的回复:
[quote=引用 1 楼 ch122633 的回复:] 搞一张背景图片呗,不是三角的部分是透明的
这种方式不行,因为QScatterSeries的MarkerShape只有两种,正方形和圆形,虽然可以使用一个背景透明的三角形图案作为图符,但是如果绘制边框的话,还是会绘制成正方形或圆形。[/quote] 把边框一起画进图片里,设置成无边框
angel_lys 2017-11-16
  • 打赏
  • 举报
回复
引用 2 楼 u010370871 的回复:
QPolygon 不可以么?我记得这是个绘制多边形的
可以绘制多边形,但是无法解决正确绘制出多边形Border的问题。
angel_lys 2017-11-16
  • 打赏
  • 举报
回复
引用 3 楼 Liuzwang 的回复:
楼主,一楼说的是对的。想要什么形状,图形以外全部设置成透明的。
这种方式不行,因为QScatterSeries的MarkerShape只有两种,正方形和圆形,虽然可以使用一个背景透明的三角形图案作为图符,但是如果绘制边框的话,还是会绘制成正方形或圆形。
angel_lys 2017-11-16
  • 打赏
  • 举报
回复
引用 1 楼 ch122633 的回复:
搞一张背景图片呗,不是三角的部分是透明的
这种方式不行,因为QScatterSeries的MarkerShape只有两种,正方形和圆形,虽然可以使用一个背景透明的三角形图案作为图符,但是如果绘制边框的话,还是会绘制成正方形或圆形。

16,225

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧