qt qpaint 画箭头
时间: 2023-10-12 07:02:29 浏览: 176
要在Qt中使用QPainter来画箭头,你可以使用以下代码:
```
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
// 画线
QLineF line(50, 50, 200, 200);
painter.drawLine(line);
// 画箭头
double arrowSize = 10;
double angle = std::atan2(-line.dy(), line.dx());
QPointF arrowP1 = line.p2() - QPointF(sin(angle + M_PI / 3) * arrowSize,
cos(angle + M_PI / 3) * arrowSize);
QPointF arrowP2 = line.p2() - QPointF(sin(angle + M_PI - M_PI / 3) * arrowSize,
cos(angle + M_PI - M_PI / 3) * arrowSize);
painter.drawLine(line);
painter.drawPolygon(QPolygonF() << line.p2() << arrowP1 << arrowP2);
}
```
这段代码可以在一个QWidget派生类的paintEvent()函数中使用,它会画一条线和一个箭头。箭头的大小可以通过修改arrowSize的值来控制。
阅读全文