Добрый день. Помогите пожалуйста. Есть виджет (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);
view->render(&painter);
if (pixmap.save(QApplication::applicationDirPath() + "/image.png", "PNG"))
{
QMessageBox box;
box.setText("Saved");
box.exec();
}
}
delete widget;
delete scene;
delete view;
В результате на диске появляется файл, по виду нужного размера, но абсолютно черный. Что в моем коде неправильно, или здесь проблема в специфике qwt?
Если в качестве при добавлении виджета на сцену указать не Qt::Widget, а Qt::Window, то в левом верхнем углу появляется квадрат цвета окна. Что это означает? Не правильно задан размер сцены?
Спасибо.