Нарисуйте дерево с помощью Qt - PullRequest
1 голос
/ 22 марта 2012

Мне нужно нарисовать дерево с помощью Qt,

Я думал об использовании QGraphicsScene и QGraphicsItem для узлов. Но так как я хочу, чтобы узлы были подвижными, то как это лучше всего сделать для линий между узлами?

Есть предложения?

Thx.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Я предлагаю вам использовать QML для рисования подобных вещей (я ненавижу язык QML, но, к сожалению, в Qt будущее за рисованием высокопроизводительной графики, они усердно работают над этим, и Qt5 также будет более QML-ориентированным I Угадай). Для рисования линий вы можете использовать повернутые тонкие прямоугольники. См. Прямоугольник .

1 голос
/ 22 марта 2012

Я бы также реализовал дуги как элементы, в частности QGraphicsLine . Линия может проходить между центрами связанных узлов. Сохраняйте ссылку на инцидентные ребра в элементе узла, и во время перетаскивания узла обновляйте узлы линии с помощью:

edge->setLine(QLineF(node_center.x, node_center.y);
...