qt QGraphicsItem画圆
时间: 2023-07-05 19:03:41 浏览: 96
在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的圆形。
qt QGraphicsView画圆
下面是使用 QGraphicsView 在场景中画一个圆的示例代码:
```cpp
#include <QtWidgets>
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
// 添加圆形到场景中
QRectF rect(0, 0, 100, 100);
scene.addEllipse(rect, QPen(Qt::black), QBrush(Qt::red));
view.show();
return app.exec();
}
```
在这个示例中,我们首先创建了一个 QGraphicsScene 和一个 QGraphicsView 对象。然后,我们使用 `addEllipse` 方法将一个圆形添加到场景中。这个方法有三个参数:圆形的矩形区域、边框画笔和填充画刷。在这个例子中,我们使用了一个黑色画笔和一个红色填充画刷,来绘制一个红色的圆形。
最后,我们将 QGraphicsView 显示出来,并进入应用程序的主事件循环中。当运行这个程序时,应该会看到一个红色的圆形在窗口中央。