C++ QPrinter运行时错误

C++ QPrinter运行时错误,c++,qt,pdf,printing,C++,Qt,Pdf,Printing,编辑:我设法得到了一个编译和非崩溃版本。剩下的唯一一件事就是获得所需的输出,但是这个特定的问题(它为什么崩溃)已经得到了回答,所以我结束了这个问题。我会在坏代码之前发布工作代码 你好!我正在尝试创建一个小示例,它将简单地创建一个pdf文档。任何东西都可以编译,但是当程序启动时,它就会崩溃。我使用的是Qt5.0.0版 ---新工作守则--- ----有错误的旧代码--- 以下是主要的cpp: #include <QCoreApplication> #include <QTextD

编辑:我设法得到了一个编译和非崩溃版本。剩下的唯一一件事就是获得所需的输出,但是这个特定的问题(它为什么崩溃)已经得到了回答,所以我结束了这个问题。我会在坏代码之前发布工作代码

你好!我正在尝试创建一个小示例,它将简单地创建一个pdf文档。任何东西都可以编译,但是当程序启动时,它就会崩溃。我使用的是Qt5.0.0版

---新工作守则---

----有错误的旧代码--- 以下是主要的cpp:

#include <QCoreApplication>
#include <QTextDocument>
#include <QPrinter>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QTextDocument doc;
    doc.setHtml("<h1>Testing, testing, is this thing on?!</h1>");
    QPrinter printer;
    printer.setOutputFileName("C:\\Users\\SameTime\\Desktop\\Cutie\\PDFPrintMaybe");
    printer.setOutputFormat(QPrinter::PdfFormat);
    doc.print(&printer);
    printer.newPage();
    return a.exec();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
QTextDocument文档;
setHtml(“测试,测试,这东西开着吗?!”);
打印机;
打印机.setOutputFileName(“C:\\Users\\SameTime\\Desktop\\Cutie\\PDFPrintMaybe”);
打印机.setOutputFormat(QPrinter::PdfFormat);
文档打印(和打印机);
printer.newPage();
返回a.exec();
}

我有点不知所措,因为它正在编译,但运行时(几乎)会立即崩溃

尝试在堆上创建对象,否则当它们超出范围时会自动删除,然后框架可能会再次尝试删除它们并崩溃

QTextDocument *doc = new QTextDocument();
doc->setHtml("<h1>Testing, testing, is this thing on?!</h1>");
QPrinter* printer = new QPrinter();
printer->setOutputFileName("C:\\Users\\SameTime\\Desktop\\Cutie\\PDFPrintMaybe");
printer->setOutputFormat(QPrinter::PdfFormat);
doc->print(printer);
printer->newPage();
QTextDocument*doc=new QTextDocument();
doc->setHtml(“测试,测试,这东西开了吗?!”);
QPrinter*打印机=新的QPrinter();
打印机->设置输出文件名(“C:\\Users\\SameTime\\Desktop\\Cutie\\PDFPrintMaybe”);
打印机->设置输出格式(QPrinter::PdfFormat);
单据->打印(打印机);
打印机->新建页面();

在调试器中运行程序时,程序在何处崩溃;这一行仍然崩溃,我设法得到了一个工作版本(仍然没有得到我想要的输出,但它没有崩溃)我应该关闭这个线程吗?你在一年前做了什么?问题是,据我回忆,配置有问题。
#include <QCoreApplication>
#include <QTextDocument>
#include <QPrinter>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QTextDocument doc;
    doc.setHtml("<h1>Testing, testing, is this thing on?!</h1>");
    QPrinter printer;
    printer.setOutputFileName("C:\\Users\\SameTime\\Desktop\\Cutie\\PDFPrintMaybe");
    printer.setOutputFormat(QPrinter::PdfFormat);
    doc.print(&printer);
    printer.newPage();
    return a.exec();
}
QTextDocument *doc = new QTextDocument();
doc->setHtml("<h1>Testing, testing, is this thing on?!</h1>");
QPrinter* printer = new QPrinter();
printer->setOutputFileName("C:\\Users\\SameTime\\Desktop\\Cutie\\PDFPrintMaybe");
printer->setOutputFormat(QPrinter::PdfFormat);
doc->print(printer);
printer->newPage();