crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 27.10.2021, 0:44