ich versuche aus einem QPrintPreviewDialog welches mehrere Seiten beinhaltet nur eine Seite auszudrucken (z.B. Seite 2).
Nur leider werden immer alle Seiten ausgedruckt.
Hier ist ein Code-Beispiel:
Code: Alles auswählen
void CPrintWorkout::print(){
QPrinter printer(QPrinter::ScreenResolution);
printer.setPageSize(QPrinter::A4);
printer.setOrientation(QPrinter::Landscape);
printer.setPageOrder(QPrinter::FirstPageFirst);
QPrintPreviewDialog preview(&printer);
connect(&preview, SIGNAL(paintRequested(QPrinter*)), SLOT(print(QPrinter*)));
preview.resize(QSize(m_cfg->intValue("Print.Preview.Width", 300), m_cfg->intValue("Print.Preview.Height", 400)));
preview.exec();
QSize size = preview.size();
m_cfg->setIntValue("Print.Preview.Width", size.width());
m_cfg->setIntValue("Print.Preview.Height", size.height());
}
// ** SLOTS **
void CPrintWorkout::print(QPrinter *printer){
QPainter painter;
painter.begin(printer);
QTextDocument doc;
doc.setTextWidth(printer->pageRect().width());
for(int i = 1; i <= 3; i++){
doc.setHtml(QString::number(i) + ". Page");
doc.drawContents(&painter);
if(i < 3) printer->newPage();
}
painter.end();
}
kea_