如何在 QGraphicsScene 上绘制填充多边形

Posted

技术标签:

【中文标题】如何在 QGraphicsScene 上绘制填充多边形【英文标题】:How to draw filled polygon on QGraphicsScene 【发布时间】:2017-04-16 02:08:22 【问题描述】:

我想在 QGraphicsScene 上绘制一个填充了特定颜色的多边形。然后我使用以下代码:

QPolygonF poly;
poly << QPointF(10, 10) << QPointF(10, 50) << QPointF(30, 70 )<< QPointF(60, 50) << QPointF(50, 10);
QBrush brush;
brush.setColor(Qt::red);
QPen pen(Qt::green);
QGraphicsScene graphics_scene_ = new QGraphicsScene(0,0,200,200);
graphics_scene_->addPolygon(poly, pen, brush);
setScene(graphics_scene_);

但是我只得到一个带有绿色边框的空心多边形,但多边形内没有红色填充。 我该如何解决?

【问题讨论】:

【参考方案1】:

QBrush() 缺少样式。你应该使用:

QBrush brush
brush.setColor(Qt::red);
brush.setStyle(Qt::SolidPattern);

或者最好这样,因为Qt::SolidPattern 样式默认出现:

QBrush brush(Qt::red);

【讨论】:

以上是关于如何在 QGraphicsScene 上绘制填充多边形的主要内容,如果未能解决你的问题,请参考以下文章

QGraphicsScene 中的视觉像素完美选择

无法在鼠标光标下准确地在 QGraphicsScene 上绘制新项目

QGraphicsScene 项目在两次(x2)位置绘制

QGraphicsScene 清晰显示

缩放 QGraphicsScene 以填充整个 QGraphicsView

在 QGraphicsView/QGraphicsScene 上显示一系列图像