【问题标题】:QTextDocument's print size changes when it is set as a document of QTextEditQTextDocument 设置为 QTextEdit 的文档时打印大小发生变化
【发布时间】:2014-07-25 14:36:00
【问题描述】:

我遇到了非常有趣的问题(至少对我而言)。 当我没有使用 QTextEdit 的 setDocument 方法将 QTextDocument 设置为 QTextEdit 的文档时,它在预览和 pdf 中显示得非常小,就像在图像中一样,只占用整个数据的页面很小的位置,并且没有页边距:

image http://imgim.com/small2.png

但是,当我将其设置为任意 QTextEdit 的文档时,令人惊讶的是,它在页面中正常显示并且页边距被调整(即整个数据正常显示为 3 页)

QTextEdit* displayAreaxd = new QTextEdit;
displayAreaxd->setDocument(mainDocument);

当我使用 QTextDocument.print 时,这两行代码会改变预览和 pdf 文件中的所有外观。之后甚至没有使用 displayAreaxd , mainDocument 是一个 QTextDocument ,它是我班级的私人成员。 所以我想知道是什么原因造成的 我制作的预览如下:

QPrinter printer(QPrinter::HighResolution);
printer.setPaperSize(QPrinter::A4);
QPrintPreviewDialog preview(&printer, this);
connect(&preview, SIGNAL(paintRequested(QPrinter*)), SLOT(preview(QPrinter*)));
preview.exec();

我的预览功能基本上是打印机来自上层方法的地方:

mainDocument->print(printer);

我的 mainDocument 的创建和初始化如下:

QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setPaperSize(QPrinter::A4);
mainDocument = new QTextDocument;
mainDocument->setPageSize(printer.pageRect().size());

之后,我根据 a4 页面使用正常字体和正常图像大小绘制了一些绘图,但是当我没有将文档设置为任意 qtextedit 的文档时,它看起来就像在图像中

编辑: 当我添加代码时:

QFont docFont = QFont();
docFont.setPointSize(150);
mainDocument->setDefaultFont(docFont);

文本看起来很大,但我担心它是否可以改变不同分辨率或平台的字体大小,但我仍然不明白当我将我的文档设置为文本编辑文档时点大小如何变化。

【问题讨论】:

  • 如何制作预览?显示代码(最好是易于重现的代码)。
  • 你好,我添加了一些代码来表示感谢

标签: qt qtextdocument


【解决方案1】:

当我将文档设置为文本编辑文档时,文档的宽度会发生变化(减小)。因此,当前字体在此像素选项中看起来更大。当我将文档的大小设置为 9117*10530 时,这些字体看起来更小,因为它们的磅值很小,当我将文档设置为文本编辑的文档时,它的宽度减小到 633,因此当前字体的磅值看起来很正常。 所以当调用 setDocument 时,文本编辑会改变文档的布局和宽度。

【讨论】:

    猜你喜欢
    • 2013-01-08
    • 1970-01-01
    • 2014-01-15
    • 2015-09-08
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多