Как рисовать стрелки в Qt 5?C++

Программы на C++. Форум разработчиков
Anonymous
Как рисовать стрелки в Qt 5?

Сообщение Anonymous »

Я пытаюсь создавать стрелки в Qt и C++, но не нашел простого способа создать стрелку и добавить ее в QGraphicsScene, аналогично тому, как я это сделал бы с линией.

Код: Выделить всё

line = new QGraphicsLineItem(this);
Мне нужно нарисовать линию между двумя точками, и эти точки могут перемещаться, поэтому стрелка должна обновляться соответствующим образом. Кроме того, я хотел бы настроить цвет, толщину и т. д. стрелки.
Как лучше всего создать стрелку в Qt?
Может ли кто-нибудь подскажет мне, как этого добиться?
Единственный пример, который я нашел, это следующий:

Код: Выделить всё

void DrawLineWithArrow(QPainter& painter, QPoint start, QPoint end) {

painter.setRenderHint(QPainter::Antialiasing, true);

qreal arrowSize = 40; // size of head
painter.setPen(Qt::black);
painter.setBrush(Qt::black);

QLineF line(end, start);

double angle = std::atan2(-line.dy(), line.dx());
QPointF arrowP1 = line.p1() + QPointF(sin(angle + M_PI / 3) * arrowSize,
cos(angle + M_PI / 3) * arrowSize);
QPointF arrowP2 = line.p1() + QPointF(sin(angle + M_PI - M_PI / 3) * arrowSize,
cos(angle + M_PI - M_PI / 3) * arrowSize);

QPolygonF arrowHead;
arrowHead.clear();
arrowHead 

Подробнее здесь: [url]https://stackoverflow.com/questions/79382716/how-to-draw-arrows-in-qt-5[/url]

Вернуться в «C++»