我有以下代码:
void Test1::on_pushButton_1_clicked() // print the information
{
QPrinter printer(QPrinter::HighResolution);
printer.setCreator("Me");
printer.setDocName("Print");
printer.setPaperSize(QPrinter::A4);
QPrintPreviewDialog *pd = new QPrintPreviewDialog(&printer);
connect(pd,SIGNAL(paintRequested(QPrinter*)),this,SLOT(print(QPrinter*)));
pd->exec();
}
void Test1::print(QPrinter *p)
{
QPainter painter(p);
painter.setPen(Qt::blue);
painter.setRenderHints(QPainter::Antialiasing |
QPainter::TextAntialiasing |
QPainter::SmoothPixmapTransform, true);
painter.drawText(100, 100, "Name: ");
painter.drawText(300, 100, "SuperMan");
}
它适用于我的实验项目,只有 1 个类 [1 对话框],但在我的主项目中,当我按下按钮时,预览成功开始,但是当我按下“打印”按钮时,我的程序只是碰撞。它说“您的程序停止工作,Windows 将搜索解决方案”或类似的东西。我需要说我的程序有很多类和对话框。我几乎可以肯定指针有问题。我没有很多经验,所以我只是找不到我的错误在哪里。请查看我的代码并告诉我该怎么做,因为我只有 2 天的时间来完成该项目。非常感谢您。