Russian Qt Forum
Сентябрь 30, 2024, 18:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Программирование SVG, события?  (Прочитано 5048 раз)
aros
Гость
« : Сентябрь 28, 2006, 15:22 »

Народ подскажите пожалуйста как мне работаь с SVG - оъектами? А именно интересует возможность выполнять действия над объектами, такие как клик над SVG - объектом, over и т. д. ?
Желательно указать небольшой пример, что бы знать откуда начать копать самому?
Записан
vfilatov
Гость
« Ответ #1 : Февраль 21, 2007, 17:08 »

Присоединяюсь к вопросу. Создаю SVG-файл в редакторе, в нём имеются различные объекты, хотелось бы отлавливать события типа клика, которые над этими объектами производит юзер. Насколько я понимаю, QtSVGRenderer не предоставляет полноценной объектной модели, т.е. списка объектов с указанием их типа и параметров, функций проверки, какому объекту принадлежит точка с указанными координатами и т.д. Пытался найти библиотеку, в которой это есть, нашёл только librsvg, но это какой-то монстр, давно не обновляется, тянет за собой gtk, а мне нужно что-нибудь нормальное под Windows. Может у кого есть какие-нибудь мысли по этому поводу?
Записан
yurror
Гость
« Ответ #2 : Февраль 21, 2007, 18:31 »

Берем XML парсер на вход ему SVG получаем собственно списочек на его основе делаем объекты QGraphicsItem и в QGraphicsScene запихиваем... ну или что-то типо того... далее по примерчикам работы с QGraphics*
Сохранение: по массиву объектиков QGraphicsItem составляем XML'ку
Записан
vfilatov
Гость
« Ответ #3 : Февраль 21, 2007, 20:15 »

Вот как раз хотелось бы избежать ручного парсинга SVG как обычного XML. Формат произвольного SVG может быть весьма сложным. Кроме того, в плане отображения меня вполне устроит QSvgRenderer. Хотелось бы получать информацию об объектах без привязки к GUI. Так же необходимо для заданной точки определять замкнутый контур, в который она попадает (представим, что SVG содержит набор пересекающихся прямых, кривых Безье, фигур, т.е. точка может находиться не внутри какого-то одного объекта, а внутри пересечения объектов). Понятно, что можно ручками, но те же графические редакторы, браузеры, всё это делают, неужели в каждом случае они реализуют функциональность заново.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.153 секунд. Запросов: 20.