QGraphicsItem画五角星 C++
时间: 2024-01-24 14:08:18 浏览: 21
以下是用QGraphicsItem画五角星的代码示例:
```cpp
#include <QPainter>
#include <QGraphicsItem>
class StarItem : public QGraphicsItem
{
public:
StarItem(QGraphicsItem *parent = nullptr) : QGraphicsItem(parent) {}
QRectF boundingRect() const override
{
return QRectF(-50, -50, 100, 100); // 设置边界矩形
}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
{
Q_UNUSED(option)
Q_UNUSED(widget)
painter->setPen(Qt::NoPen);
painter->setBrush(Qt::yellow);
// 五角星的5个顶点坐标
QPointF points[5] = {
QPointF(0, -50),
QPointF(14.43, -18.27),
QPointF(47.55, -18.27),
QPointF(23.78, 11.54),
QPointF(35.36, 43.27)
};
painter->drawPolygon(points, 5); // 画五角星
}
};
```
在`boundingRect()`函数中,我们设置了边界矩形为(-50,-50)到(50,50)。在`paint()`函数中,我们使用QPainter对象画了一个黄色的五角星,五个顶点坐标通过一个QPointF数组进行存储并传递给`drawPolygon()`函数。