Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » [PyQt4] Как нарисовать стрелки связей? [RSS Feed]

#1 Дек. 3, 2009 00:03:43

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

Собственно, пишу небольшую программку. В ней схема структуры БД отображается, по старинке, прямоугольниками со списками полей. Хочу, как вы уже, наверное, догадались, намутить визуализацию связей между этими прямоугольниками с помощью гнутых стрелок. Вот тут и вопрос - как грамотнее всего рассчитать координаты? Или вообще существует модуль, позволяющий задавать начальную и конечную точки и степень кривизны, чтобы огибать другие объекты? Если бы удалось сделать это в динамике (с тасканием окошек в реальном времени, потипу Yahoo Pipes) - вообще было бы шикарно. Посоветуйте пожалуйста, как грамотнее сделать.



Офлайн

#2 Дек. 3, 2009 23:55:08

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

Есть небольшой исходник нодового редактора на питоне, в нём уже реализовано всё что надо и работает он довольно шустро. Тут по сути нет разницы чем рисовать, простая математика, переписать для Qt-шных виджетов думаю будет не трудно: http://dream.com.ua/thetool.html



Офлайн

#3 Дек. 4, 2009 00:34:38

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

poltergeist
хм, спасибо, покопаю. Я уж хотел приделывать QWebView, а в нем сгенеренная страничка с JS-либой WiredIT, на основе которой сделан Yahoo Pipes.



Офлайн

#4 Дек. 4, 2009 07:12:27

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

Enchantner
Я уж хотел приделывать QWebView, а в нем сгенеренная страничка с JS-либой WiredIT, на основе которой сделан Yahoo Pipes.
Насчет WiredIT - где посмотреть, не могу найти? Какая лицензия?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Дек. 4, 2009 16:50:50

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

PooH
ой, прошу прощения, WireIT. Вот он. Лицензия MIT.



Отредактировано (Дек. 4, 2009 16:51:53)

Офлайн

#6 Дек. 4, 2009 22:16:30

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

честно говоря, мне предстоит решать такую же проблему. Лично я с математикой как раз проблем не вижу, а вот с кьютом плохо знаком xD



Офлайн

#7 Дек. 5, 2009 16:34:44

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

Собственно, реализацию более-менее разобрал - там используется OpenGL, но, блин, вменяемых доков по python-qt4-gl так и не нашел. Где взять, кто-нибудь знает?

АПД: Хотя вроде все, получилось…



Отредактировано (Дек. 5, 2009 16:48:59)

Офлайн

#8 Дек. 5, 2009 17:33:57

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

если получится сделать хорший виджет, то поделитесь с общественностью ;)



Офлайн

#9 Дек. 5, 2009 18:02:22

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

pasaranax
Виджет пока не получилось :) Стрелка отрисовывается нормально. Кому интересно, совсем сырой, но рабочий код - http://pastebin.com/f4b7e53d7

АПД: обновил, устранил некоторые проблемы с рисованием. Теперь можно кучу стрелок намутить.



Отредактировано (Дек. 5, 2009 19:07:38)

Офлайн

#10 Дек. 5, 2009 23:30:47

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt4] Как нарисовать стрелки связей?

Собственно, получается такой вот веселый интерфейс :) Не обращайте внимания на связи, они рандомом расставлены, просто общий вид. Со стрелками далеко не все удобно, но вроде все смотрится довольно прилично.



Полный размер (странно, бб-коды не дают сделать картинку ссылкой)



Отредактировано (Дек. 5, 2009 23:31:26)

Офлайн

  • Начало
  • » GUI
  • » [PyQt4] Как нарисовать стрелки связей?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version