我在Window 7上使用的是Qt 4.8.4版本。我没有条件在Mac、Linux等其他平台上测试这个问题……我使用下面的代码来预览内容
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");
}
按下 OK 按钮后,将出现此对话框:
如您所见,页面是空白的。该页面不包含任何内容。然后我单击预览对话框上的页面设置按钮,这会出现:
…不做任何更改,我单击确定,然后预览变得正确:
我真的不明白这是什么原因。如何在不更改页面设置的情况下正确显示内容?
你有什么解决办法?
P/S:我已经阅读了这篇与我的问题类似的帖子。作者推荐使用QPageSetupDialog
对象,我尝试了不同的方法。但是我仍然没有解决问题,因为我是Qt的新手。