![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AlexandrosLiberalis |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 21.7.2014 Пользователь №: 4193 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет!
Новичок. Я делаю программу для рисования графов. Для рисования на QGraphicsScene есть два класса: Node и Edge. Эти классы рисуют вершины и дуги соответственно. Объект класса Node имеет флаг ItemIsMovable. При добавлении объекта Edge пользователь задаёт начальный и конечный объекты Node, которые в свою очередь дают координаты для рисования линии стрелки объекта Edge. После перемещения вершин, QGraphicsScene необходимо перерисовать, и пока я для этого использую кнопку на диалоге, в которой пишу код для рисования и в конце scene->update(); Как сделать перерисовку при перемещении вершины или её "отпускании"? Класс Node уже содержит метод mouseReleaseEvent() и, в моём понимании, его необходимо соединить с каким то слотом в главном диалоге, который в свою очередь всё перерисует. Подскажите пожалуйста, как это сделать. проект прилагаю.
Прикрепленные файлы
|
|
|
![]() |
Trisch |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: ![]() ![]() ![]() |
в методе mouseReleaseEvent() вы посылаете сигнал, который соединен с слотом, который в свою очередь все обновляет.
дополнительная инфа по сигналам и слотам Сообщение отредактировал Trisch - 17.8.2014, 11:43 |
|
|
afrit |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 12.2.2014 Пользователь №: 4053 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
в методе mouseReleaseEvent() вы посылаете сигнал, который соединен с слотом, который в свою очередь все обновляет. дополнительная инфа по сигналам и слотам Беда в том, что Node и Edge наследуются от QGraphicsItem, который в свою очередь о QObject ничего не знает, сигналы/слоты работать не будут. Как вариант, используйте QGraphicsObject или самостоятельно сделайте двойное наследование. А вообще, если я правильно понял задачу, посмотрите на http://qt-project.org/forums/viewthread/33448 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.6.2025, 20:17 |