我遇到了非常有趣的问题(至少对我来说)。当我没有使用 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);
文本看起来很大,但我担心它是否可以改变不同分辨率或平台的字体大小,当我将文档设置为文本编辑文档时,我仍然不明白点大小如何变化。