Mehrere Seiten drucken
Verfasst: 21. Mai 2010 14:50
Hallo allerseits,
ich versuche ein widget zu drucken, welches sich in einer scrollarea befindet. das widget hat ein vboxlayout und hat 4 childwidgets, davon ist eins ein qframe und drei qgraphicsviews:
......
vlayout->addWidget(graphicsView1);
vlayout->addWidget(graphicsView1);
vlayout->addWidget(graphicsView1);
vlayout->addWidget(frame1);
......
Ich versuche das widget zu drucken, indem ich QPixmap::grabWidget() aufrufe. soweit so gut.
ich bekomme alle 4 seiten auf einer seite gedruckt... ich hätte gerne auf 4 seiten gedruckt. für hilfe wär ich dankbar.
ich versuche ein widget zu drucken, welches sich in einer scrollarea befindet. das widget hat ein vboxlayout und hat 4 childwidgets, davon ist eins ein qframe und drei qgraphicsviews:
......
vlayout->addWidget(graphicsView1);
vlayout->addWidget(graphicsView1);
vlayout->addWidget(graphicsView1);
vlayout->addWidget(frame1);
......
Ich versuche das widget zu drucken, indem ich QPixmap::grabWidget() aufrufe. soweit so gut.
Code: Alles auswählen
QLabel *imageLabel = new QLabel;
imageLabel->setBackgroundRole(QPalette::Base);
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
imageLabel->setScaledContents(true);
QPixmap pmap1 = QPixmap::grabWidget(m_wrapper,m_wrapper->rect());
//neuen drucker erzeugen
QPrinter printer;
QPrintDialog dialog(&printer, this);
if (dialog.exec())
{
imageLabel->setPixmap(pmap1);
QPainter painter3(&printer);
QRect rect = painter3.viewport();
QSize size = imageLabel->pixmap()->size();
size.scale(rect.size(), Qt::KeepAspectRatio);
painter3.setViewport(rect.x(), rect.y(), size.width(), size.height());
painter3.setWindow(imageLabel->pixmap()->rect());
painter3.drawPixmap(0, 0, *imageLabel->pixmap());
}