QSvgGenerator
과 같이 특정 화가에게 QChart
(핵심은 QGraphicsWidget
)을 렌더링하고 싶습니다.QGraphicsView없이 QChart 렌더링
나는 다음과 같은 주제 https://forum.qt.io/topic/38352/rendering-qgraphicsitem-without-qgraphicsscene/2를 읽고 내 코드에서 구현했습니다 : 첫 번째 두 번째, 직접 QChart
그림입니다 - QGraphicsView
렌더링 : 주석이 두 줄이 있습니다
QBuffer b;
QSvgGenerator p;
p.setOutputDevice(&b);
QSize s = app->chart()->size().toSize();
p.setSize(s);
p.setViewBox(QRect(0,0,s.width(),s.height()));
QPainter painter;
painter.begin(&p);
painter.setRenderHint(QPainter::Antialiasing);
app->chart()->paint(&painter, 0, 0); // This gives 0 items in 1 group
m_view->render(&painter); // m_view has app->chart() in it, and this one gives right image
qDebug() << "Copied";
painter.end();
QMimeData * d = new QMimeData();
d->setData("image/svg+xml",b.buffer());
QApplication::clipboard()->setMimeData(d,QClipboard::Clipboard);
.
나는 이미 setViewBox
으로 게임을 시도했지만, 큰 값으로 설정해도 도움이되지 않습니다. QSvgGenerator
대신 QImage
을 사용하면 효과가 동일 해져 빈 그림이 나타납니다.
그래서 QChart->paint()
이 내게 빈 그림을주는 이유는 무엇입니까?
편집 : 작업 코드의 bitbucket에서 찾을 수 있습니다 : https://bitbucket.org/morodeer/charts_test_2/commits/b1eee99736beb5e43eae2a40ae116ee07e01558f
고맙습니다. 이것은 많은 도움이되었습니다. – Waldemar