crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Вывод векторной картинки
Гость_Гость_Aline_u_*_*
сообщение 15.7.2013, 10:24
Сообщение #1





Гости








    


Добрый день! Только недавно начала изучать Qt, поступило задание: необходимо на экран вывести векторные картинки, при этом они должны стыковаться друг с другом, к ним должен быть прикручен текст и их можно убирать (удалять). В связи с этим возникли вопросы: я вот таким образом (по нажатию на кнопку) вывожу картинку
    ui->grShemaView->scene()->addPixmap(QPixmap("D://WORK//QT projects//ShemaPoleta//ImgShemaPoleta//kvadrat.png"));

    ui->grShemaView->show();


почитала, что аddPixmap используется для растровых изображений, мне же надо вывести векторное. Что тогда использовать? Еще мне надо вывести в определенное место, т.е. задать координаты, к тому же следующую картинку надо пристыковать к предыдущей,т.е. мне надо знать координаты предыдущей картинки. Как их узнать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 15.7.2013, 17:08
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


Вам нужно будет использовать модуль QtSvg, а конкретнее класс QSvgRenderer.
http://qt-project.org/doc/qt-5.1/qtsvg/qtsvg-index.html
http://qt-project.org/doc/qt-4.8/qtsvg.html
у этого класса есть функция
 render(QPainter * painter, const QRectF & bounds)
какой QRect передадите там и нарисуется.

Сообщение отредактировал ilyabvt - 15.7.2013, 17:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_aline_*
сообщение 19.7.2013, 15:31
Сообщение #3





Гости








    


Цитата(ilyabvt @ 15.7.2013, 17:08) *
Вам нужно будет использовать модуль QtSvg, а конкретнее класс QSvgRenderer.
http://qt-project.org/doc/qt-5.1/qtsvg/qtsvg-index.html
http://qt-project.org/doc/qt-4.8/qtsvg.html
у этого класса есть функция
 render(QPainter * painter, const QRectF & bounds)
какой QRect передадите там и нарисуется.

Спасибо за ответ!
А для чего используется render? Просто я начала использовать QGraphicsScene и QGraphicsSvgItems.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 19.7.2013, 21:18
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


Рендерит изображение на наследниках QPaintDevice с помощью QPainter. QPainter это класс для рисования, в конструктор или в его функцию begin должен быть передан PaintDevice (холст на котором будет производиться рисование). Функцию render использует объект QPainter и рисует изображение на связанном с ним холсте.
Не принципиально что и использовать, исключительно вопрос удобства. Вот есть пример, тут тоже используется QGraphicsScene и QGraphicsSvgItems:
SVG Viewer Example
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 7.5.2024, 20:32