crossplatform.ru

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

> Отрисовка виджета в QPixmap
giker
  опции профиля:
сообщение 29.10.2010, 21:39
Сообщение #1


Студент
*

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

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




Репутация:   0  


Добрый день. Помогите пожалуйста. Есть виджет (qwtPlot) который надо отрисовывать в QPixmap используя QGraphicsView. Для отрисовки использую такой код:
QGraphicsScene *scene = new QGraphicsScene(0, 0, qwtPlot->width(), qwtPlot->height());
QGraphicsProxyWidget *widget = scene->addWidget(qwtPlot, Qt::Widget);
QGraphicsView *view = new QGraphicsView();
view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
view->setScene(scene);
qwtPlot->show();
view->show();
QPixmap pixmap(qwtPlot->size());
if (widget->isVisible())
{
       QPainter painter(&pixmap);
       painter.setRenderHint(QPainter::Antialiasing);
       painter.begin(&pixmap);
       view->render(&painter);
       painter.end();
       if (pixmap.save(QApplication::applicationDirPath() + "/image.png", "PNG"))
       {
            QMessageBox box;
            box.setText("Saved");
            box.exec();
       }
}
delete widget;
delete scene;
delete view;


В результате на диске появляется файл, по виду нужного размера, но абсолютно черный. Что в моем коде неправильно, или здесь проблема в специфике qwt?
Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- giker   Отрисовка виджета в QPixmap   29.10.2010, 21:39
- - Алексей1153   попробуй убрать painter.begin(&pixmap); либо ...   29.10.2010, 21:51
|- - giker   Ни каких изменений - опять абсолютно черный файл.   29.10.2010, 22:31
- - Алексей1153   хорошо. Делаем чистый эксперимент: { ... { ...   29.10.2010, 22:47
|- - giker   Есть.   29.10.2010, 23:14
- - Алексей1153   giker, значит что ? По умолчанию девайс залит чёрн...   30.10.2010, 8:53
|- - giker   Хорошо, тогда по идее, если сначала залить весь pi...   31.10.2010, 8:29
- - Алексей1153   giker, значит, view->render не изменяет картин...   31.10.2010, 10:43
|- - giker   В смысле рисовалку? qwtPlot это виджет типа QwtPl...   31.10.2010, 12:41
- - Алексей1153   giker, я не знаю, с чем это связано. Может быть, р...   31.10.2010, 12:57
- - giker   Итак после долгих экспериментов, задача почти реши...   1.11.2010, 14:28
- - Алексей1153   я так понимаю, что продвижение - это QPixmap pixm...   1.11.2010, 15:20
- - giker   Задача так и не решилась - то что я принял за непр...   3.11.2010, 9:58
- - Алексей1153   блин, я и забыл совсем покопаться, из головы вылет...   3.11.2010, 10:11
- - igor_bogomolov   Цитата(giker @ 29.10.2010, 21:39) Добрый ...   3.11.2010, 10:15
|- - giker   Не подходит потому что зависит от текущего состоян...   3.11.2010, 20:42
- - Алексей1153   giker, а ты палитру, кстати, делаешь такую же, как...   3.11.2010, 20:55
|- - giker   Палитру вообще не выставляю. Где, как и у кого она...   4.11.2010, 14:36
- - Алексей1153   хм, а фиг знает. Я нашёл только как прочитать битн...   4.11.2010, 15:05


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


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




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