crossplatform.ru

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


  Ответ в Отрисовка виджета в QPixmap
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 4.11.2010, 15:05
  хм, а фиг знает. Я нашёл только как прочитать битность и количество цветов - depth() и colorCount ()

кстати, не игнорируй вот это замечание
Цитата(igor_bogomolov @ 3.11.2010, 12:15) *
А чем просто QPixmap QPixmap::grabWidget ( QWidget * widget, const QRect & rectangle ) [static] вам не подходит?
giker Дата 4.11.2010, 14:36
  Палитру вообще не выставляю. Где, как и у кого она выставляется?
Алексей1153 Дата 3.11.2010, 20:55
  giker, а ты палитру, кстати, делаешь такую же, как у того, кто рендерит ?
giker Дата 3.11.2010, 20:42
  Не подходит потому что зависит от текущего состояния - размера виджета. Например если пользователь изменит размер родительского окна, соответственно изменяться размеры и дочерних виджетов. Мне же нужно отрисовывать виджет в картинку заданных размеров, желательно с таким же качеством как на экране.
igor_bogomolov Дата 3.11.2010, 10:15
 
Цитата(giker @ 29.10.2010, 21:39) *
Добрый день. Помогите пожалуйста. Есть виджет (qwtPlot) который надо отрисовывать в QPixmap используя QGraphicsView. Для отрисовки использую такой

А чем просто QPixmap QPixmap::grabWidget ( QWidget * widget, const QRect & rectangle ) [static] вам не подходит?
Алексей1153 Дата 3.11.2010, 10:11
  блин, я и забыл совсем покопаться, из головы вылетело ((
giker, напомни мне вечером, что ли...
giker Дата 3.11.2010, 9:58
  Задача так и не решилась - то что я принял за неправильное отображение моего рисунка, оказалось просто мусором при создания pixmap (кстати странно что он не создается просто черным, в каким-то серобурмальновым в полоску). Интересует вот какой вопрос: Возможно ли в принципе отрисовать в файл через QGraphicScene, виджет уже отрисованный на форме или нет?
Решил пойти другим путем: QwtPlot умеет сохранять свои графики в svg формат через QSvgGenerator, мне нужно вставить этот SVG-рисунок в HTML для последующей конвертации его в PDF. В связи с этим возникает вопрос: где хранятся данные svg-картинки в QsvgGenerator. Или нужно сохранить ее файл, а потом вставлять его в HTML? Если да то как: текстом или массивом данных из прочитанного файла?
Алексей1153 Дата 1.11.2010, 15:20
  я так понимаю, что продвижение - это
QPixmap pixmap(300, 300);
? :)

я домой приду, попробую. Это через 3-4 часика
giker Дата 1.11.2010, 14:28
  Итак после долгих экспериментов, задача почти решилась - фаил заполняет нечто, код вот такой:

QGraphicsScene *scene = new QGraphicsScene(0, 0, qwtPlot->width(), qwtPlot->height());
QGraphicsProxyWidget *widget = scene->addWidget(qwtPlot);
QPixmap pixmap(300, 300);
QPainter painter(&pixmap);
painter.setRenderHint(QPainter::Antialiasing);
QGraphicsView *view = new QGraphicsView();
view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
qwtPlot->repaint();
view->render(&painter, QRectF(), QRect(), Qt::IgnoreAspectRatio);
pixmap.save(QApplication::applicationDirPath() + "/image.png", "PNG"))


но в файле получается не разлинованая декартова система координат на сером фоне как должно быть, а какие-то сине-фиолетовые полосы. На сколько я понимаю неправильно происходит чтение со сцены в QPixmap. Подскажите пожалуйста в чем дело.
Алексей1153 Дата 31.10.2010, 12:57
  giker, я не знаю, с чем это связано. Может быть, размер у вьюхи нулевой ? Попробуй принудительно размер задать какой-нибудь
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 16:40