LINUX.ORG.RU

[Qt] [GraphicsView]

 


0

0

Только что начал изучать этот набор средств и что-то я совсем запутался.

Мне необходимо реализовать отображение на сцене нетривиального элемента. Он состоит из эллипса, к которому присоединена линия, которая в свою очередь присоединяется к тексту.

Нажимая на эллипс всю конструкцию можно перемещать по сцене. Нажимая на другие примитивы (части конструкции) ничего не должно происходить.

Я думал наследоваться от QGraphicsItem, в его paint'e рисовать сам эллипс, а в конструкторе просто создать соответствующие примитивы, указав в качестве родителя этот класс.

Правильно ли я понимаю, что перемещая описанный виджет, остальные (наследованные Item'ы) будут перемещаться вместе с ним?

С координатами у меня конечно полный ахтунг.

Правильно ли я решаю поставленную задачу?


Проще всего создать дерево элементов, в корне будет эллипс, которому ставятся дочерними другие элементы. Эллипсу поставить флаг ItemMovable, чтобы самому не переопределять реагирование на мышь.

Более простой способ получить то же самое - написать это на QML.

Dendy ★★★★★
()

Всё правильно. Тогда координаты линии и текста будут начинаться с уголка эллипса.

unnamed
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.