I am using Qt version 4.8.4 on Window 7. I don’t have conditions to test this issue on another platform such as Mac, Linux… and I use the following code to preview content
void DemoClass::on_btnOK_clicked()
{
printer.
setResolution(QPrinter::HighResolution);
printer.
setOrientation(QPrinter::Portrait);
printer.setFullPage(true);
QPrintPreviewDialog *printPreview = new QPrintPreviewDialog(&printer);
connect(printPreview,
SIGNAL(paintRequested
(QPrinter*)),
this,
SLOT(print
(QPrinter*)));
printPreview->setWindowTitle("Preview Dialog");
Qt::WindowFlags flags(Qt::WindowTitleHint);
printPreview->setWindowFlags(flags);
printPreview->exec();
}
void DemoClass
::print(QPrinter *printer
) {
painter.
setRenderHints(QPainter::Antialiasing |
painter.drawText(100, 100, "Hello World! 123");
}
void DemoClass::on_btnOK_clicked()
{
QPrinter printer;
printer.setResolution(QPrinter::HighResolution);
printer.setPaperSize(QPrinter::A4);
printer.setOrientation(QPrinter::Portrait);
printer.setFullPage(true);
QPrintPreviewDialog *printPreview = new QPrintPreviewDialog(&printer);
connect(printPreview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(print(QPrinter*)));
printPreview->setWindowTitle("Preview Dialog");
Qt::WindowFlags flags(Qt::WindowTitleHint);
printPreview->setWindowFlags(flags);
printPreview->exec();
}
void DemoClass::print(QPrinter *printer)
{
QPainter painter(printer);
painter.setRenderHints(QPainter::Antialiasing |
QPainter::TextAntialiasing |
QPainter::SmoothPixmapTransform, true);
painter.drawText(100, 100, "Hello World! 123");
}
To copy to clipboard, switch view to plain text mode
On pushing the OK button, this dialog appears:
09-09-2013 18-03-43.png
As you see, the page is blank. The page doesn’t contain any content. Then I click the page setup button on the preview dialog and this appears:
09-09-2013 18-04-23.png
…without changing anything, I click OK and then the preview becomes correct:
09-09-2013 18-05-18.png
I really don’t understand what the reason is. How can I show the content correctly without changing page setup?
Do you have any solutions?
Bookmarks