QPrinter 单击按钮时我的程序崩溃为啥?

Posted

技术标签:

【中文标题】QPrinter 单击按钮时我的程序崩溃为啥?【英文标题】:QPrinter When click button my program crashes Why?QPrinter 单击按钮时我的程序崩溃为什么? 【发布时间】:2013-09-16 03:05:20 【问题描述】:

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

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);”在哪里位于您的代码中? 我们可以看到它在 button_clicked 函数中声明。你到底是什么意思?我对指针还不是很好。 QPrintPreviewDialog *pd = new QPrintPreviewDialog(&printer);只有在那里,你看到它。我没有在其他任何地方使用过它 在你的代码中看起来好像它在外面 您可以按原样粘贴整个代码吗?另外,能否请您发送回溯?您使用的是哪个操作系统,哪个 Qt 版本等? 这是整个代码,其他都是代理模型,列表模型。我的主要目标是从 TableView 单元格中获取价值。我得到了这个值,然后我把它放在了 drawText 函数中。当我按下按钮时,我的 PrintPreview 出现了,没有问题,但是当我单击其中的打印按钮时,我的程序崩溃了。正如您在 drawText 中的帖子代码中看到的那样,我使用了一些现成的字符串“SuperMan”,程序再次崩溃。我想,这可能是问题所在。但不是。您在帖子中看到的没有更多关于此的内容。这就是一切。再次感谢 【参考方案1】:

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

【讨论】:

以上是关于QPrinter 单击按钮时我的程序崩溃为啥?的主要内容,如果未能解决你的问题,请参考以下文章

为啥单击按钮时我的 reactstrap 模式没有打开?

为啥当我单击按钮时我的数据不去并且没有提交到 MySQL 数据库?

单击TextView时我的应用程序崩溃了

为啥单击按钮时我的选项卡没有变化?

在 swift 3 上的按钮单击应用程序是与故事板绑定的崩溃

为啥第三次单击按钮时发送消息会崩溃?