我正在尝试构建一个以分页方式显示富文本文档的应用程序 - 或多或少像 MS Word 那样。目前,我希望一次只显示一页。
From 这个问题 https://stackoverflow.com/questions/3605368/how-to-paginate-a-qplaintextedit我了解到我需要通过以下方式代表该文档QText文档 http://qt-project.org/doc/qt-4.8/qtextdocument.html。虽然问题的作者更关注view代表,我想了解如何访问文档data以分页方式。我可以看到该类具有诸如setPageSize()
and pageCount()
。呼唤setPageSize()
似乎更新了pageCount()
因此。
问题是我不知道如何访问所选页面的内容以使其显示在 QtextEdit 中。
(我通过 PySide 库从 Python 访问 Qt)
The QTextEdit
是一个文本编辑器,实际上没有页面的概念,而是专注于段落。
您可以创建自己的分页视图来尊重页面大小,但 Qt 已经为您提供了一个。看看QPrintPreviewWidget
or QPrintPreviewDialog
。它们易于使用QTextEdit
.
子类QTextEdit
并实现以下功能(preview
函数是一个 Qt 插槽)。这printPreview
函数将在对话框中显示分页视图,其中包含您的内容QTextEdit
.
void MyTextEdit::printPreview(QPrinter *printer)
{
QPrinter printer(QPrinter::HighResolution);
QPrintPreviewDialog preview(&printer, this);
connect(&preview, SIGNAL(paintRequested(QPrinter*)), SLOT(preview(QPrinter*)));
preview.exec();
}
void MyTextEdit::preview(QPrinter *printer)
{
print(printer);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)