PrintPreview 不显示任何内容
PrintPreview shows nothing
我在QT的QPrintPreviewDialog窗口中看不到任何内容,为什么会这样?缺少什么?
QPrinter printer;
printer.setOutputFileName("sample.pdf");
printer.setPaperSize(QPrinter::A4);
printer.setFullPage(true);
QPainter painter(&printer);
painter.drawLine(10, 10, 200, 200);
QPrintPreviewDialog * preview = new QPrintPreviewDialog(&printer, this);
if (preview->exec() == QDialog::Accepted)
{
}
这不是
使用QPrintPreviewDialog
的文档,文档清楚地指出,在使用QPrinter
对象构造QPrinterPreviewDialog
之后,在调用QPrintPreviewDialog::exec()
之前,您应该paintRequested()
信号连接到自定义插槽(您应该在关联的QPrinter
对象上绘画,并且您在那里绘制的所有内容都显示在QPrintPreviewDialog
中)。
所以,如果我理解你试图做正确的事情,你应该定义一个插槽PreviewPaintRequest
并在那里使用QPainter
,你的代码应该是这样的:
在构造函数中:
QPrinter printer;
printer.setOutputFileName("sample.pdf");
printer.setPaperSize(QPrinter::A4);
printer.setFullPage(true);
QPrintPreviewDialog * preview = new QPrintPreviewDialog(&printer, this);
connect(preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(PreviewPaintRequested(QPrinter*)));
if (preview->exec() == QDialog::Accepted)
{
}
在PreviewPaintRequested(QPrinter* printer)
插槽中:
{
QPainter painter(printer);
painter.drawLine(10, 10, 200, 200);
}
相关文章:
- 如何在cpp中使用地图显示给定日期范围内(在下面的问题中)的费率?
- QChart在使用QDateTimeAxis时不显示任何系列数据
- 为什么静态数组成员变量在调用对象的实例后不显示任何内容?
- 为什么下面的Hello World程序在PowerShell上没有显示任何输出?同一程序在CMD上显示正确的输出
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- C++ 中是否有任何内置阶乘函数?
- 是否有任何内置函数可以告诉编译器分支是否可预测
- 在不到一分钟的情况下,在一秒钟内显示计时器
- 我需要在C /C#中使用图形.我可以使用任何内置的C /C#库
- 是否有任何内置类可以处理C 中的大整数值
- c ++中是否有任何内置功能可以在计划的时间运行任务
- 是否有任何内置的 UTF 在 c++ 在窗口中
- 在VC++2010中执行任何内置的ARRAY函数
- C++:如何在不使用任何内置函数的情况下将字符串转换为整数
- 如何将文件的路径(或任何文本)显示/附加到编辑框中?(C++ Win32 API)
- 是否有任何内置的CUDA函数允许CUDA内核向主机代码报告错误?
- 我如何在常数时间(O(1))内获得字母表(1-26)中字符的数值/位置,而不使用任何内置方法或函数
- C++中的任何内置哈希方法
- c++库中的任何内置夹子方法