【问题标题】: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”,程序再次崩溃。我想,这可能是问题所在。但不是。您在帖子中看到的没有更多关于此的内容。这就是一切。再次感谢

标签: qt printing qprinter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-24
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多