QT QGraphicsItem画圆
时间: 2023-11-06 20:15:18 浏览: 92
可以通过继承QGraphicsItem类并实现其paint函数来画出圆形。以下是一个简单的示例代码:
```cpp
#include <QGraphicsItem>
#include <QPainter>
class MyCircle : public QGraphicsItem
{
public:
MyCircle(qreal x, qreal y, qreal radius)
: m_x(x), m_y(y), m_radius(radius)
{}
QRectF boundingRect() const override
{
return QRectF(m_x - m_radius, m_y - m_radius, m_radius * 2, m_radius * 2);
}
void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override
{
painter->drawEllipse(QPointF(m_x, m_y), m_radius, m_radius);
}
private:
qreal m_x;
qreal m_y;
qreal m_radius;
};
```
在使用时,可以创建MyCircle对象,并将其添加到QGraphicsScene中即可。例如:
```cpp
MyCircle* circle = new MyCircle(50, 50, 30);
QGraphicsScene* scene = new QGraphicsScene;
scene->addItem(circle);
```
这将在场景中画出一个圆心坐标为(50, 50),半径为30的圆形。
阅读全文