0

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

图片 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);

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

4

1 回答 1

0

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

于 2014-08-01T09:24:24.530 回答