큰 창을 내 창에 성공적으로 표시하려면 탐색 용 스크롤 막대가있는 QGraphicsView/QGraphicsScene
을 사용하십시오. 모든 것이 잘 작동합니다.QGraphicsView to pdf
이제는 장면의 일부를 pdf로 렌더링하고 싶습니다. pdf에서 렌더링 할 영역은 창에서 볼 수있는 영역과 보이는 영역 위와 아래의 사각형이어야합니다.
나는 (이 가로 스크롤 막대가 사용 된 경우 간단하게, 나는 무시했다 시작하는) 것을 시도했다 :
QPrinter myPrinter(QPrinter::ScreenResolution);
myPrinter.setOrientation(QPrinter::Landscape);
myPrinter.setPaperSize(QPrinter::A4);
myPrinter.setOutputFormat(QPrinter::PdfFormat);
myPrinter.setPageMargins(0.0, 0.0, 0.0, 0.0, QPrinter::Point);
QPainter myPainter(&myPrinter);
m_pageWidth = myPrinter.width();
m_pageHeight = myPrinter.height();
myPainter.setViewport(0, 0, m_pageWidth, m_pageHeight);
QRectF viewRender = QRect(0.0, 0.0, m_pageWidth, m_pageHeight);
for(int i = 0; i < myScene->getNbPages(); i++)
{
QRect viewScene = QRect(0, m_pageHeight * i, m_pageWidth, m_pageHeight);
setSceneRect(viewScene);
render(&myPainter, viewRender, viewScene);
if(i + 1 < myScene->getNbPages())
myPrinter.newPage();
}
하지만 기대 나는 원인이되지 않습니다. 예를 들어이 함수의 경우 QGraphicsView::drawBackground(QPainter *painter, const QRectF &rect)
rect의 왼쪽 위 모서리는 첫 번째 페이지는 0, 0은 아니지만 107, 98, 107, 1585에 있습니다 (페이지 높이는 793입니까?) ...
누구나 무슨 일이 일어나고 있는지 이해하십니까? 읽어 주셔서 감사합니다.
답변 해 주셔서 감사합니다. 사실 좌표에 문제가있는 것 같습니다. 그 방향으로 가고있었습니다. 당신이 제안하는 것이 지금은 아무 것도 바뀌지는 않지만 ... – Ote
동일한 변수에서 mapFromScene을 사용하는 것은 어떻습니까? 또는 viewScene 변수에? – phyatt
'drawBackground (QPainter * painter, const QRectF & rect)'rect의 왼쪽 상단 구석이 107, 0.00007이고 너비가 66000000이고 높이가 7600000이기 때문에 확실히 mapFromScene이 아닙니다 ... 나는 그걸로 미쳐 가고 있습니다. – Ote