Здравствуйте, гость ( Вход | Регистрация )
|
AlexandrosLiberalis |
17.8.2014, 11:24
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 21.7.2014 Пользователь №: 4193 Спасибо сказали: 0 раз(а) Репутация: 0
|
Всем привет!
Новичок. Я делаю программу для рисования графов. Для рисования на QGraphicsScene есть два класса: Node и Edge. Эти классы рисуют вершины и дуги соответственно. Объект класса Node имеет флаг ItemIsMovable. При добавлении объекта Edge пользователь задаёт начальный и конечный объекты Node, которые в свою очередь дают координаты для рисования линии стрелки объекта Edge. После перемещения вершин, QGraphicsScene необходимо перерисовать, и пока я для этого использую кнопку на диалоге, в которой пишу код для рисования и в конце scene->update(); Как сделать перерисовку при перемещении вершины или её "отпускании"? Класс Node уже содержит метод mouseReleaseEvent() и, в моём понимании, его необходимо соединить с каким то слотом в главном диалоге, который в свою очередь всё перерисует. Подскажите пожалуйста, как это сделать. проект прилагаю.
Прикрепленные файлы
|
|
|
|
![]() |
|
Trisch |
17.8.2014, 11:41
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0
|
в методе mouseReleaseEvent() вы посылаете сигнал, который соединен с слотом, который в свою очередь все обновляет.
дополнительная инфа по Link Сообщение отредактировал Trisch - 17.8.2014, 11:43 |
|
|
|
|
afrit |
23.8.2014, 20:48
Сообщение
#3
|
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 12.2.2014 Пользователь №: 4053 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Trisch @ 17.8.2014, 12:41) Link в методе mouseReleaseEvent() вы посылаете сигнал, который соединен с слотом, который в свою очередь все обновляет. дополнительная инфа по Link Беда в том, что Node и Edge наследуются от QGraphicsItem, который в свою очередь о QObject ничего не знает, сигналы/слоты работать не будут. Как вариант, используйте QGraphicsObject или самостоятельно сделайте двойное наследование. А вообще, если я правильно понял задачу, посмотрите на Link |
|
|
|
AlexandrosLiberalis Перерисовка QGraphicsScene. 17.8.2014, 11:24
AlexandrosLiberalis В объявлении Node обозначил как сигнал
signals:
... 17.8.2014, 13:09
Trisch Нельзя void mouseReleaseEvent(QGraphicsSceneMouseE... 17.8.2014, 15:23
AlexandrosLiberalis Trisch,
Что то всё равно не получается, говорит ... 17.8.2014, 17:34
lanz Нужно менять своиства ребер соединеных с данной ве... 17.8.2014, 15:24
Trisch Цитата(AlexandrosLiberalis @ 17.8.2014, 17... 17.8.2014, 20:38
AlexandrosLiberalis Цитата(Trisch @ 17.8.2014, 21:38) Цитата(... 17.8.2014, 20:41
lanz Цитатаи это я сделал
Надо наследовать тогда от QGr... 18.8.2014, 0:06![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 30.12.2025, 20:10 |