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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по сохранению/печати QGraphicsScene  (Прочитано 3036 раз)
viktor.kz
Гость
« : Октябрь 30, 2009, 14:17 »

Здравствуйте.

Добавляю QGraphicsSvgItem на сцену. Отображается нормально (т.е. как вектор), но при сохранении сцены в Svg или печати, итем отображается/сохраняется как растр. Соответственно качество, мягко сказать - никакое.
Если заглянуть в сохраненный Svg то видно, что сохранился итем как png. (data:image/png)

Сохраняю так:

Код
C++ (Qt)
void SaveSceneAsSvg(QString sFileName)
{
if(sFileName.isEmpty()){
return;
}
QRectF rect = scene->sceneRect();
QSvgGenerator generator;
generator.setFileName(sFileName);
generator.setSize(QSize(scene->sceneRect().width(), scene->sceneRect().height()));
generator.setViewBox(scene->sceneRect());
generator.setTitle(tr("Title"));
generator.setDescription(tr("Description"));
QPainter painter;
painter.begin(&generator);
scene->render(&painter, QRectF(), rect);
painter.end();
}
 

Конечно, есть вариант самому парсить Svg, который загружается в QGraphicsSvgItem, и рисовать (линии/полилинии, точки, полигоны), но это гемор.

Кто нибудь сталкивался с такой проблемой?


P.S. Qt 4.5.0
Заранее спасибо.
Записан
SABROG
Гость
« Ответ #1 : Октябрь 30, 2009, 18:19 »

Для QSvgGenerator нужны элементы типа QPainterPath, все остальное будет превращаться в картинку.
Записан
viktor.kz
Гость
« Ответ #2 : Октябрь 30, 2009, 19:24 »

Для QSvgGenerator нужны элементы типа QPainterPath, все остальное будет превращаться в картинку.

Тогда чем он отличается QSvgGenerator от QPrinter'a непонятно. Как бы название говорит само за себя.

Может у Вас есть какое-то другое решение?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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