qt qgraphicsview 去掉画时圆弧的直线
时间: 2023-07-12 07:28:05 浏览: 102
Qt Scene graph画线和擦除
如果您想在 `QGraphicsView` 中绘制圆弧而不显示直线,则可以使用 `QPainterPath` 的 `arcTo` 方法来创建路径,然后将路径绘制到 `QGraphicsView` 中。
以下是一个示例代码,可以绘制一个圆弧并在 `QGraphicsView` 中显示:
```c++
#include <QtWidgets>
class GraphicsView : public QGraphicsView
{
public:
GraphicsView(QWidget* parent = nullptr) : QGraphicsView(parent)
{
setRenderHint(QPainter::Antialiasing);
setScene(new QGraphicsScene(this));
// 创建路径
QPainterPath path;
path.arcTo(-50, -50, 100, 100, 30, 240);
// 创建图形项
QGraphicsPathItem* item = new QGraphicsPathItem;
item->setPath(path);
item->setPen(QPen(Qt::red, 2));
// 添加图形项到场景
scene()->addItem(item);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
GraphicsView view;
view.show();
return a.exec();
}
```
这里的 `arcTo` 方法用于创建一个矩形内的椭圆弧线段。前四个参数定义矩形左上角的坐标和其宽度和高度。第五个参数表示弧线的起始角度,第六个参数表示弧线的跨越角度。
使用 `QGraphicsPathItem` 将路径添加到场景中。在 `QGraphicsPathItem` 上设置颜色等属性,可以控制弧线的外观。
这样绘制的圆弧不会显示直线。
阅读全文