Qt QPrinter在单击按钮时我的程序崩溃为什么?

Qt QPrinter在单击按钮时我的程序崩溃为什么?,qt,printing,qprinter,Qt,Printing,Qprinter,当我点击按钮时,程序崩溃。我将发布我的代码: void Test1::on_pushButton_1_clicked() // print the information { QPrinter printer(QPrinter::HighResolution); printer.setCreator("Me"); printer.setDocName("Print"); printer.setPaperSize(QPrinter::A4); QPrint

当我点击按钮时,程序崩溃。我将发布我的代码:

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");
}
请告诉我哪里错了。
提前谢谢。

谢谢大家的回答,我终于解决了我的问题。那么我是如何解决的呢?我刚刚将发布模式更改为调试模式。塔达姆。就这样。文件要大一点,但谁在乎呢。一切都很好。再次感谢您的回答。

代码中的“QPrintPreviewDialog*pd=new QPrintPreviewDialog(&printer);”在哪里?如我们所见,它在按钮单击功能中声明。你到底是什么意思?我对指针还不是很在行。QPrintPreviewDialog*pd=新的QPrintPreviewDialog(&打印机);只有在那里,在你看到它的地方。我没有在其他地方使用过它。在你的代码中,它看起来好像在外面。你能按原样粘贴整个代码吗?另外,你能发送回溯吗?您使用的是哪个操作系统,哪个Qt版本,等等?这是全部代码,其他的都是代理模型,ListModels。我的主要目标是从TableView单元格中获取值。我得到这个值,然后把它放到drawText函数中。当我按下按钮时,我的打印预览显示出来,没有问题,但是当我点击其中的打印按钮时,我的程序崩溃了。正如您在drawText中看到的,我使用了一些现成的字符串“SuperMan”,程序再次崩溃。我想,这可能就是问题所在。但事实并非如此。关于这一点,你在帖子中看到的没有更多。这就是一切。再次感谢