@Matweytt

Как визуализировать ребро графа QT?

Есть задача визуализировать граф. С вершинами все в порядке, а вот с ребром проблема, не знаю как сделать стрелку из QGraphicsLineItem. Код ниже принимает координаты вершины из которой надо строить стрелку, потом координаты вершины куда надо надо строить стрелку и название ребра. Но он проводит просто линию, а надо линию с со стрелкой. Как реализовать????

void MainWindow::getrebro(float x, float y, float xx, float yy, QString s)
{
QGraphicsLineItem *line = new QGraphicsLineItem(x+5,y+5,xx+5,yy+5);
line->setZValue(-1);
float xt = (x+xx)/2;
float yt = (y+yy)/2;
QGraphicsTextItem *text = new QGraphicsTextItem(s);
text->setX(xt);
text->setY(yt);

scene->addItem(line);
scene->addItem(text);
}

вершины строятся так:
void MainWindow::getsubject(float x, float y, QString s)
{
QGraphicsEllipseItem *ellips = new QGraphicsEllipseItem(0,0,10,10);
ellips->setY(y);
ellips->setX(x);
ellips->setBrush(Qt::black);
QGraphicsTextItem *text = new QGraphicsTextItem(s);
text->setY(y+5);
text->setX(x);
scene->addItem(ellips);
scene->addItem(text);

}

void MainWindow::getobject(float x, float y, QString s)
{
QGraphicsEllipseItem *ellips = new QGraphicsEllipseItem(0,0,10,10);
ellips->setY(y);
ellips->setX(x);
ellips->setBrush(Qt::white);
QGraphicsTextItem *text = new QGraphicsTextItem(s);
text->setY(y+5);
text->setX(x);
scene->addItem(ellips);
scene->addItem(text);
}
  • Вопрос задан
  • 334 просмотра
Пригласить эксперта
Ответы на вопрос 1
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Написать отрисовку стрелки самому: https://doc.qt.io/qt-5/qtwidgets-graphicsview-diag...
Тут весь пример: https://doc.qt.io/qt-5/qtwidgets-graphicsview-diag...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы