qt QGraphicsItem画圆
时间: 2023-07-05 13:03:41 浏览: 432
在Qt中,可以使用QGraphicsEllipseItem类绘制圆。下面是一个简单的例子:
```cpp
#include <QGraphicsEllipseItem>
// 创建圆形
QGraphicsEllipseItem* ellipse = new QGraphicsEllipseItem(0, 0, 50, 50);
ellipse->setPen(QPen(Qt::black)); // 设置画笔
ellipse->setBrush(QBrush(Qt::red)); // 设置填充颜色
// 添加到场景中
QGraphicsScene* scene = new QGraphicsScene();
scene->addItem(ellipse);
```
在上面的例子中,我们创建了一个QGraphicsEllipseItem对象,并设置了它的大小以及画笔和填充颜色。然后,将其添加到QGraphicsScene中。
在这个例子中,圆的位置是(0, 0),半径是25。如果你想要在不同的位置和大小上绘制圆,只需要调整构造函数中的参数即可。
相关问题
QT QGraphicsItem画圆
可以通过继承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的圆形。
QGraphicsItem画圆
可以使用QGraphicsEllipseItem类来画圆形。以下是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QGraphicsScene, QGraphicsView, QGraphicsEllipseItem
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPen, QColor
scene = QGraphicsScene()
view = QGraphicsView(scene)
# 创建圆形item
pen = QPen(Qt.blue)
brush = QColor(255, 0, 0, 50)
item = QGraphicsEllipseItem(0, 0, 100, 100)
item.setPen(pen)
item.setBrush(brush)
# 将item添加到场景中
scene.addItem(item)
view.show()
```
在这个示例中,我们使用QGraphicsEllipseItem类创建了一个半径为50的圆形item,并将其添加到了场景中。你可以根据需要调整圆形的位置和大小,以及笔刷和画笔的颜色和样式。
阅读全文