QTextDocument 类

QTextDocument 类保持格式化文本。 更多...

头: #include <QTextDocument>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
继承: QObject

注意: 此类的所有函数 可重入 .

公共类型

enum FindFlag { FindBackward, FindCaseSensitively, FindWholeWords }
flags FindFlags
flags MarkdownFeatures
enum MetaInformation { DocumentTitle, DocumentUrl, CssMedia }
(since 6.1) ResourceProvider
enum ResourceType { UnknownResource, HtmlResource, ImageResource, StyleSheetResource, MarkdownResource, UserResource }
enum Stacks { UndoStack, RedoStack, UndoAndRedoStacks }

特性

公共函数

QTextDocument (QObject * parent = nullptr)
QTextDocument (const QString & text , QObject * parent = nullptr)
virtual ~QTextDocument ()
void addResource (int type , const QUrl & name , const QVariant & resource )
void adjustSize ()
QList<QTextFormat> allFormats () const
int availableRedoSteps () const
int availableUndoSteps () const
QUrl baseUrl () const
(从 6.0 起) qreal baselineOffset () const
QTextBlock begin () const
int blockCount () const
QChar characterAt (int pos ) const
int characterCount () const
virtual void clear ()
void clearUndoRedoStacks (QTextDocument::Stacks stacksToClear = UndoAndRedoStacks)
QTextDocument * clone (QObject * parent = nullptr) const
Qt::CursorMoveStyle defaultCursorMoveStyle () const
QFont defaultFont () const
QString defaultStyleSheet () const
QTextOption defaultTextOption () const
QAbstractTextDocumentLayout * documentLayout () const
qreal documentMargin () const
void drawContents (QPainter * p , const QRectF & rect = QRectF())
QTextBlock end () const
QTextCursor find (const QString & subString , const QTextCursor & cursor , QTextDocument::FindFlags options = FindFlags()) const
QTextCursor find (const QString & subString , int position = 0, QTextDocument::FindFlags options = FindFlags()) const
QTextCursor find (const QRegularExpression & expr , int from = 0, QTextDocument::FindFlags options = FindFlags()) const
QTextCursor find (const QRegularExpression & expr , const QTextCursor & cursor , QTextDocument::FindFlags options = FindFlags()) const
QTextBlock findBlock (int pos ) const
QTextBlock findBlockByLineNumber (int lineNumber ) const
QTextBlock findBlockByNumber (int blockNumber ) const
QTextBlock firstBlock () const
qreal idealWidth () const
qreal indentWidth () const
bool isEmpty () const
bool isLayoutEnabled () const
bool isModified () const
bool isRedoAvailable () const
bool isUndoAvailable () const
bool isUndoRedoEnabled () const
QTextBlock lastBlock () const
int lineCount () const
void markContentsDirty (int position , int length )
int maximumBlockCount () const
QString metaInformation (QTextDocument::MetaInformation info ) const
QTextObject * 对象 (int objectIndex ) const
QTextObject * objectForFormat (const QTextFormat & f ) const
int pageCount () const
QSizeF pageSize () const
void print (QPagedPaintDevice * printer ) const
void redo (QTextCursor * cursor )
QVariant resource (int type , const QUrl & name ) const
(since 6.1) QTextDocument::ResourceProvider resourceProvider () const
int revision () const
QTextFrame * rootFrame () const
void setBaseUrl (const QUrl & url )
(从 6.0 起) void setBaselineOffset (qreal baseline )
void setDefaultCursorMoveStyle (Qt::CursorMoveStyle style )
void setDefaultFont (const QFont & font )
void setDefaultStyleSheet (const QString & sheet )
void setDefaultTextOption (const QTextOption & option )
void setDocumentLayout (QAbstractTextDocumentLayout * layout )
void setDocumentMargin (qreal margin )
void setHtml (const QString & html )
void setIndentWidth (qreal width )
void setLayoutEnabled (bool b )
void setMarkdown (const QString & markdown , QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub)
void setMaximumBlockCount (int maximum )
void setMetaInformation (QTextDocument::MetaInformation info , const QString & string )
void setPageSize (const QSizeF & size )
void setPlainText (const QString & text )
(since 6.1) void setResourceProvider (const QTextDocument::ResourceProvider & provider )
(从 6.0 起) void setSubScriptBaseline (qreal baseline )
(从 6.0 起) void setSuperScriptBaseline (qreal baseline )
void setTextWidth (qreal width )
void setUndoRedoEnabled (bool enable )
void setUseDesignMetrics (bool b )
QSizeF size () const
(从 6.0 起) qreal subScriptBaseline () const
(从 6.0 起) qreal superScriptBaseline () const
qreal textWidth () const
QString toHtml () const
QString toMarkdown (QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const
QString toPlainText () const
QString toRawText () const
void undo (QTextCursor * cursor )
bool useDesignMetrics () const

公共槽

void redo ()
void setModified (bool m = true)
void undo ()

信号

void baseUrlChanged (const QUrl & url )
void blockCountChanged (int newBlockCount )
void contentsChange (int position , int charsRemoved , int charsAdded )
void contentsChanged ()
void cursorPositionChanged (const QTextCursor & cursor )
void documentLayoutChanged ()
void modificationChanged (bool changed )
void redoAvailable (bool available )
void undoAvailable (bool available )
void undoCommandAdded ()

静态公共成员

(since 6.1) QTextDocument::ResourceProvider defaultResourceProvider ()
(since 6.1) void setDefaultResourceProvider (const QTextDocument::ResourceProvider & provider )

保护函数

virtual QTextObject * createObject (const QTextFormat & format )
virtual QVariant loadResource (int type , const QUrl & name )

详细描述

QTextDocument 是结构化富文本文档容器,提供对样式化文本和各种类型的文档元素 (譬如:列表、表格、帧及图像) 的支持。可以创建它们为用于 QTextEdit ,或独立使用。

各文档元素的描述是通过关联格式对象。各格式对象被 QTextDocument 视为唯一对象,且可以传递给 objectForFormat () 以获得应用它的文档元素。

QTextDocument 可以以编程方式编辑使用 QTextCursor , and its contents can be examined by traversing the document structure. The entire document structure is stored as a hierarchy of document elements beneath the root frame, found with the rootFrame () function. Alternatively, if you just want to iterate over the textual contents of the document you can use begin (), end (),和 findBlock () to retrieve text blocks that you can examine and iterate over.

文档布局的确定是通过 documentLayout ();可以创建自己的 QAbstractTextDocumentLayout 子类并设置它使用 setDocumentLayout () 若想要使用自己的布局逻辑。可以获得文档的标题及其它元信息通过调用 metaInformation () 函数。向用户暴露文档是透过 QTextEdit 类,文档标题也可用凭借 QTextEdit::documentTitle () 函数。

The toPlainText () 和 toHtml () convenience functions allow you to retrieve the contents of the document as plain text and HTML. The document's text can be searched using the find () 函数。

可以控制文档履行撤消/重做操作使用 setUndoRedoEnabled () 函数。通过编辑器 Widget 可以控制撤销/重做系统透过 undo () 和 redo () 槽;文档还提供 contentsChanged (), undoAvailable (),和 redoAvailable () signals that inform connected editor widgets about the state of the undo/redo system. The following are the undo/redo operations of a QTextDocument:

  • Insertion or removal of characters. A sequence of insertions or removals within the same text block are regarded as a single undo/redo operation.
  • Insertion or removal of text blocks. Sequences of insertion or removals in a single operation (e.g., by selecting and then deleting text) are regarded as a single undo/redo operation.
  • 文本字符格式改变。
  • 文本块格式改变。
  • 文本块组格式改变。

另请参阅 QTextCursor , QTextEdit ,和 富文本处理 .

成员类型文档编制

enum QTextDocument:: FindFlag
flags QTextDocument:: FindFlags

此枚举描述的选项可用于 QTextDocument 的 find 函数。可以将来自以下列表中的选项 OR 在一起:

常量 描述
QTextDocument::FindBackward 0x00001 向后而不是向前搜索。
QTextDocument::FindCaseSensitively 0x00002 默认情况下,find 工作不区分大小写。指定此选项会将查找操作行为更改为区分大小写。
QTextDocument::FindWholeWords 0x00004 使查找只匹配完整单词。

FindFlags 类型是 typedef 对于 QFlags <FindFlag>。它存储 FindFlag 值的 OR 组合。

enum QTextDocument:: MetaInformation

此枚举描述可以被添加到文档的元信息的不同类型。

常量 描述
QTextDocument::DocumentTitle 0 文档标题。
QTextDocument::DocumentUrl 1 文档的 URL。 loadResource () 函数将此 URL 用作基,当加载相关资源时。
QTextDocument::CssMedia 2 This value is used to select the corresponding '@media' rule, if any, from a specified CSS stylesheet when setHtml () is called. This enum value has been introduced in Qt 6.3.

另请参阅 metaInformation (), setMetaInformation (),和 setHtml ().

[alias, since 6.1] QTextDocument:: ResourceProvider

Type alias for std::function< QVariant (const QUrl &)>.

该 typedef 在 Qt 6.1 引入。

enum QTextDocument:: ResourceType

此枚举描述可以加载的资源类型通过 QTextDocument 's loadResource () 函数或通过 QTextBrowser::setSource ().

常量 描述
QTextDocument::UnknownResource 0 资源未加载 (或资源类型未知)。
QTextDocument::HtmlResource 1 资源包含 HTML。
QTextDocument::ImageResource 2 The resource contains image data. Currently supported data types are QMetaType::QPixmap and QMetaType::QImage . If the corresponding variant is of type QMetaType::QByteArray then Qt attempts to load the image using QImage::loadFromData . QMetaType::QIcon is currently not supported. The icon needs to be converted to one of the supported types first, for example using QIcon::pixmap .
QTextDocument::StyleSheetResource 3 资源包含 CSS。
QTextDocument::MarkdownResource 4 资源包含 Markdown。
QTextDocument::UserResource 100 用户定义资源类型的第 1 可用值。

另请参阅 loadResource () 和 QTextBrowser::sourceType ().

enum QTextDocument:: Stacks

常量 描述
QTextDocument::UndoStack 0x01 撤消堆栈。
QTextDocument::RedoStack 0x02 重做堆栈。
QTextDocument::UndoAndRedoStacks UndoStack | RedoStack 撤消和重做堆栈。

特性文档编制

baseUrl : QUrl

此特性保持用于解析文档中相对资源 URL (统一资源定位符) 的基 URL。

Resource URLs are resolved to be within the same directory as the target of the base URL meaning any portion of the path after the last '/' will be ignored.

基 URL 相对 URL 解析 URL
file:///path/to/content images/logo.png file:///path/to/images/logo.png
file:///path/to/content/ images/logo.png file:///path/to/content/images/logo.png
file:///path/to/content/index.html images/logo.png file:///path/to/content/images/logo.png
file:///path/to/content/images/ ../images/logo.png file:///path/to/content/images/logo.png

访问函数:

QUrl baseUrl () const
void setBaseUrl (const QUrl & url )

通知程序信号:

void baseUrlChanged (const QUrl & url )

[read-only] blockCount : const int

此特性保持文档文本块数。

此特性的值在具有表格 (或框架) 的文档中未定义。

默认情况下,若有定义,此特性包含值 1。

访问函数:

int blockCount () const

另请参阅 lineCount () 和 characterCount ().

defaultFont : QFont

此特性保持用于显示文档文本的默认字体

访问函数:

QFont defaultFont () const
void setDefaultFont (const QFont & font )

defaultStyleSheet : QString

The default style sheet is applied to all newly HTML formatted text that is inserted into the document, for example using setHtml () 或 QTextCursor::insertHtml ().

样式表需要遵从 CSS 2.1 句法。

注意: Changing the default style sheet does not have any effect to the existing content of the document.

访问函数:

QString defaultStyleSheet () const
void setDefaultStyleSheet (const QString & sheet )

另请参阅 支持的 HTML 子集 .

defaultTextOption : QTextOption

This property holds the default text option will be set on all QTextLayout s in the document.

QTextBlock s are created, the defaultTextOption is set on their QTextLayout . This allows setting global properties for the document such as the default word wrap mode.

访问函数:

QTextOption defaultTextOption () const
void setDefaultTextOption (const QTextOption & option )

documentMargin : qreal

围绕文档的边距。默认为 4。

访问函数:

qreal documentMargin () const
void setDocumentMargin (qreal margin )

indentWidth : qreal

Returns the width used for text list and text block indenting.

缩进特性对于 QTextListFormat and QTextBlockFormat specify multiples of this value. The default indent width is 40.

访问函数:

qreal indentWidth () const
void setIndentWidth (qreal width )

[since 6.4] layoutEnabled : bool

此特性保持是否 QTextDocument should recalculate the layout after every change

If this property is set to true, any change to the document triggers a layout, which makes everything work as expected but takes time.

Temporarily disabling the layout can save time when making multiple changes (not just text content, but also default font, default text option....) so that the document is only laid out once at the end. This can be useful when the text width or page size isn't yet known, for instance.

默认情况下,此特性为 true .

该特性在 Qt 6.4 引入。

访问函数:

bool isLayoutEnabled () const
void setLayoutEnabled (bool b )

另请参阅 setTextWidth .

maximumBlockCount : int

指定对文档的块数限制。

指定文档可能拥有的最大块数。若采用此特性的指定文档有更多块,则块被移除从文档开头。

文档的负值 (或零值) 指定可能包含无限数量的块。

默认值为 0。

注意:设置此特性会立即将限制应用于文档内容。

设置此特性还会禁用撤消、重做历史。

此特性在具有表格 (或框架) 的文档中未定义。

访问函数:

int maximumBlockCount () const
void setMaximumBlockCount (int maximum )

modified : bool

此特性保持文档是否已被用户修改

默认情况下,此特性为 false .

访问函数:

bool isModified () const
void setModified (bool m = true)

另请参阅 modificationChanged ().

pageSize : QSizeF

This property holds the page size that should be used for laying out the document

The units are determined by the underlying paint device. The size is measured in logical pixels when painting to the screen, and in points (1/72 inch) when painting to a printer.

By default, for a newly-created, empty document, this property contains an undefined size.

访问函数:

QSizeF pageSize () const
void setPageSize (const QSizeF & size )

另请参阅 modificationChanged ().

[read-only] size : const QSizeF

This property holds the actual size of the document. This is equivalent to documentLayout ()->documentSize();

The size of the document can be changed either by setting a text width or setting an entire page size.

Note that the width is always >= pageSize ().width().

By default, for a newly-created, empty document, this property contains a configuration-dependent size.

访问函数:

QSizeF size () const

另请参阅 setTextWidth (), setPageSize (),和 idealWidth ().

textWidth : qreal

The text width specifies the preferred width for text in the document. If the text (or content in general) is wider than the specified with it is broken into multiple lines and grows vertically. If the text cannot be broken into multiple lines to fit into the specified text width it will be larger and the size () 和 idealWidth () property will reflect that.

If the text width is set to -1 then the text will not be broken into multiple lines unless it is enforced through an explicit line break or a new paragraph.

默认值为 -1。

Setting the text width will also set the page height to -1, causing the document to grow or shrink vertically in a continuous way. If you want the document layout to break the text into multiple pages then you have to set the pageSize 特性代替。

访问函数:

qreal textWidth () const
void setTextWidth (qreal width )

另请参阅 size (), idealWidth (),和 pageSize ().

undoRedoEnabled : bool

This property holds whether undo/redo are enabled for this document

This defaults to true. If disabled, the undo stack is cleared and no items will be added to it.

访问函数:

bool isUndoRedoEnabled () const
void setUndoRedoEnabled (bool enable )

useDesignMetrics : bool

This property holds whether the document uses design metrics of fonts to improve the accuracy of text layout

If this property is set to true, the layout will use design metrics. Otherwise, the metrics of the paint device as set on QAbstractTextDocumentLayout::setPaintDevice () will be used.

Using design metrics makes a layout have a width that is no longer dependent on hinting and pixel-rounding. This means that WYSIWYG text layout becomes possible because the width scales much more linearly based on paintdevice metrics than it would otherwise.

默认情况下,此特性为 false .

访问函数:

bool useDesignMetrics () const
void setUseDesignMetrics (bool b )

成员函数文档编制

[explicit] QTextDocument:: QTextDocument ( QObject * parent = nullptr)

构造空的 QTextDocument 采用给定 parent .

[explicit] QTextDocument:: QTextDocument (const QString & text , QObject * parent = nullptr)

构造 QTextDocument 包含纯 (无格式) text 指定,和采用给定 parent .

[virtual noexcept] QTextDocument:: ~QTextDocument ()

销毁文档。

void QTextDocument:: addResource ( int type , const QUrl & name , const QVariant & resource )

添加资源 resource to the resource cache, using type and name as identifiers. type should be a value from QTextDocument::ResourceType .

For example, you can add an image as a resource in order to reference it from within the document:

    document->addResource(QTextDocument::ImageResource,
        QUrl("mydata://image.png"), QVariant(image));
					

The image can be inserted into the document using the QTextCursor API:

    QTextImageFormat imageFormat;
    imageFormat.setName("mydata://image.png");
    cursor.insertImage(imageFormat);
					

Alternatively, you can insert images using the HTML img tag:

    editor->append("<img src=\"mydata://image.png\" />");
					

void QTextDocument:: adjustSize ()

把文档调节到合理大小。

另请参阅 idealWidth (), textWidth ,和 size .

QList < QTextFormat > QTextDocument:: allFormats () const

Returns a list of text formats for all the formats used in the document.

int QTextDocument:: availableRedoSteps () const

返回可用的重做步骤数。

另请参阅 isRedoAvailable ().

int QTextDocument:: availableUndoSteps () const

返回可用的撤消步骤数。

另请参阅 isUndoAvailable ().

[since 6.0] qreal QTextDocument:: baselineOffset () const

Returns the baseline offset in % used in the document layout.

该函数在 Qt 6.0 引入。

另请参阅 setBaselineOffset (), setSubScriptBaseline (), subScriptBaseline (), setSuperScriptBaseline (),和 superScriptBaseline ().

QTextBlock QTextDocument:: begin () const

返回文档的第一文本块。

另请参阅 firstBlock ().

[signal] void QTextDocument:: blockCountChanged ( int newBlockCount )

This signal is emitted when the total number of text blocks in the document changes. The value passed in newBlockCount 是新的总计。

QChar QTextDocument:: characterAt ( int pos ) const

返回字符位于位置 pos ,或 null 字符若位置超出范围。

另请参阅 characterCount ().

int QTextDocument:: characterCount () const

返回此文档的字符数。

注意: As a QTextDocument 始终包含至少一 QChar::ParagraphSeparator ,此方法将至少返回 1。

另请参阅 blockCount () 和 characterAt ().

[虚拟] void QTextDocument:: clear ()

清理文档。

void QTextDocument:: clearUndoRedoStacks ( QTextDocument::Stacks stacksToClear = UndoAndRedoStacks)

清零堆栈,指定通过 stacksToClear .

此方法清零撤消堆栈、重做堆栈或两者 (默认) 中的任何命令。若命令被清零,会发射适当信号 QTextDocument::undoAvailable () 或 QTextDocument::redoAvailable ().

另请参阅 QTextDocument::undoAvailable () 和 QTextDocument::redoAvailable ().

QTextDocument *QTextDocument:: clone ( QObject * parent = nullptr) const

创建新的 QTextDocument that is a copy of this text document. parent is the parent of the returned text document.

[signal] void QTextDocument:: contentsChange ( int position , int charsRemoved , int charsAdded )

此信号被发射每当文档内容改变时;例如,当插入 (或删除) 文本 (或应用格式) 时。

Information is provided about the position of the character in the document where the change occurred, the number of characters removed ( charsRemoved ), and the number of characters added ( charsAdded ).

The signal is emitted before the document's layout manager is notified about the change. This hook allows you to implement syntax highlighting for the document.

另请参阅 QAbstractTextDocumentLayout::documentChanged () 和 contentsChanged ().

[signal] void QTextDocument:: contentsChanged ()

此信号被发射每当文档内容改变时;例如,当插入 (或删除) 文本 (或应用格式) 时。

另请参阅 contentsChange ().

[virtual protected] QTextObject *QTextDocument:: createObject (const QTextFormat & format )

创建并返回新文档对象 ( QTextObject ),基于给定 format .

QTextObjects will always get created through this method, so you must reimplement it if you use custom text objects inside your document.

[signal] void QTextDocument:: cursorPositionChanged (const QTextCursor & cursor )

This signal is emitted whenever the position of a cursor changed due to an editing operation. The cursor that changed is passed in cursor 。若文档用于 QTextEdit class and you need a signal when the cursor is moved with the arrow keys you can use the cursorPositionChanged () signal in QTextEdit .

Qt::CursorMoveStyle QTextDocument:: defaultCursorMoveStyle () const

The default cursor movement style is used by all QTextCursor objects created from the document. The default is Qt::LogicalMoveStyle .

另请参阅 setDefaultCursorMoveStyle ().

QFont QTextDocument:: defaultFont () const

返回用于文档布局的默认字体。

注意: getter 函数对于特性 defaultFont。

另请参阅 setDefaultFont ().

[static, since 6.1] QTextDocument::ResourceProvider QTextDocument:: defaultResourceProvider ()

Returns the default resource provider.

该函数在 Qt 6.1 引入。

另请参阅 setDefaultResourceProvider (), resourceProvider (),和 loadResource ().

QTextOption QTextDocument:: defaultTextOption () const

默认文本选项可以用于所有 QTextLayout objects in the document. This allows setting global properties for the document such as the default word wrap mode.

注意: getter 函数对于特性 defaultTextOption。

另请参阅 setDefaultTextOption ().

QAbstractTextDocumentLayout *QTextDocument:: documentLayout () const

返回此文档的文档布局。

另请参阅 setDocumentLayout ().

[signal] void QTextDocument:: documentLayoutChanged ()

此信号被发射,当设置新文档布局时。

另请参阅 setDocumentLayout ().

void QTextDocument:: drawContents ( QPainter * p , const QRectF & rect = QRectF())

绘制文档内容采用描绘器 p ,裁剪到 rect 。若 rect 是 null 矩形 (默认) 则不裁剪描绘文档。

QTextBlock QTextDocument:: end () const

此函数返回当遍历时,测试文档结尾的块。

for (QTextBlock it = doc->begin(); it != doc->end(); it = it.next())
    std::cout << it.text().toStdString() << "\n";
					

返回的块无效,表示文档最后块之后的块。可以使用 lastBlock () 以检索文档的最后有效块。

另请参阅 lastBlock ().

QTextCursor QTextDocument:: find (const QString & subString , const QTextCursor & cursor , QTextDocument::FindFlags options = FindFlags()) const

查找下一出现为字符串 subString 在文档中。搜索始于位置给定 cursor ,且透过文档向前继续进行,除非有指定,否则按 options 进行搜索。 options 控制履行搜索的类型。

返回具有匹配选中的光标若 subString 被找到;否则返回 null 光标。

若给定 cursor 拥有选定,在选定后开始搜索;否则从光标位置开始。

默认情况下,搜索不区分大小写,且可以匹配文档中任何地方的文本。

QTextCursor QTextDocument:: find (const QString & subString , int position = 0, QTextDocument::FindFlags options = FindFlags()) const

这是重载函数。

查找下一出现为字符串 subString 在文档中。搜索始于给定 position ,且透过文档向前继续进行,除非有指定,否则按 options 进行搜索。 options 控制履行搜索的类型。

返回具有匹配选中的光标若 subString 被找到;否则返回 null 光标。

position 为 0 (默认) 搜索从文档开头开始;否则从指定位置开始。

QTextCursor QTextDocument:: find (const QRegularExpression & expr , int from = 0, QTextDocument::FindFlags options = FindFlags()) const

查找的下一出现匹配给定正则表达式 expr ,在文档同一段落中。

搜索始于给定 from 位置,并透过文档向前继续进行,除非有指定,否则按 options 进行搜索。 options 控制履行搜索的类型。

返回具有匹配选中的光标,若找到匹配;否则返回 null 光标。

from 位置为 0 (默认),搜索从文档开头开始;否则,从指定位置开始。

警告: For historical reasons, the case sensitivity option set on expr is ignored. Instead, the options are used to determine if the search is case sensitive or not.

QTextCursor QTextDocument:: find (const QRegularExpression & expr , const QTextCursor & cursor , QTextDocument::FindFlags options = FindFlags()) const

查找的下一出现匹配给定正则表达式 expr ,在文档同一段落中。

搜索始于位置给定 cursor ,且透过文档向前继续进行,除非有指定,否则按 options 进行搜索。 options 控制履行搜索的类型。

返回具有匹配选中的光标,若找到匹配;否则返回 null 光标。

若给定 cursor 拥有选定,在选定后开始搜索;否则从光标位置开始。

默认情况下,搜索不区分大小写,且可以匹配文档中任何地方的文本。

QTextBlock QTextDocument:: findBlock ( int pos ) const

返回文本块包含 pos 的字符。

QTextBlock QTextDocument:: findBlockByLineNumber ( int lineNumber ) const

返回文本块包含指定 lineNumber .

另请参阅 QTextBlock::firstLineNumber ().

QTextBlock QTextDocument:: findBlockByNumber ( int blockNumber ) const

返回文本块采用指定 blockNumber .

另请参阅 QTextBlock::blockNumber ().

QTextBlock QTextDocument:: firstBlock () const

返回文档的第一文本块。

qreal QTextDocument:: idealWidth () const

返回文本文档的理想宽度。理想宽度是不考虑可选对齐的文档实际使用宽度。它终 <= size ().width().

另请参阅 adjustSize () 和 textWidth .

bool QTextDocument:: isEmpty () const

返回 true 若文档为空;否则返回 false .

bool QTextDocument:: isRedoAvailable () const

返回 true 若重做是可用的;否则返回 false .

另请参阅 isUndoAvailable () 和 availableRedoSteps ().

bool QTextDocument:: isUndoAvailable () const

返回 true 若撤消可用;否则返回 false .

另请参阅 isRedoAvailable () 和 availableUndoSteps ().

QTextBlock QTextDocument:: lastBlock () const

返回文档的最后 (有效) 文本块。

int QTextDocument:: lineCount () const

返回此文档的行数 (若布局支持此)。否则,这就等同于块数。

另请参阅 blockCount () 和 characterCount ().

[virtual protected invokable] QVariant QTextDocument:: loadResource ( int type , const QUrl & name )

加载数据按指定 type 从资源采用给定 name .

此函数的调用是由富文本引擎,以请求未直接存储的数据通过 QTextDocument ,但仍然与之关联。例如,图像的间接引用是通过 name 属性 QTextImageFormat 对象。

当被 Qt 调用时, type 是之一值的 QTextDocument::ResourceType .

QTextDocument 是子级对象对于 QObject 拥有可援引 loadResource 方法譬如 QTextEdit , QTextBrowser QTextDocument 本身,那么,默认实现会试着从父级检索数据。

注意: 此函数可以被援引,通过元对象系统和从 QML。见 Q_INVOKABLE .

另请参阅 QTextDocument::ResourceProvider .

void QTextDocument:: markContentsDirty ( int position , int length )

标记内容指定通过给定 position and length 为 dirty (脏),告知文档需要再次布局。

QString QTextDocument:: metaInformation ( QTextDocument::MetaInformation info ) const

返回文档类型的有关元信息指定通过 info .

另请参阅 setMetaInformation ().

[signal] void QTextDocument:: modificationChanged ( bool changed )

此信号被发射每当文档的内容以影响修改状态的方式更改时。若 changed 为 true,文档已被修改;否则它为 false。

例如:调用 setModified (false) 在文档,然后插入文本导致发射信号。若撤消该操作,导致文档返回其原始未修改状态,将再次发射信号。

QTextObject *QTextDocument:: 对象 ( int objectIndex ) const

返回的文本对象关联给定 objectIndex .

QTextObject *QTextDocument:: objectForFormat (const QTextFormat & f ) const

返回文本对象关联格式 f .

int QTextDocument:: pageCount () const

返回此文档中的页数。

void QTextDocument:: print ( QPagedPaintDevice * printer ) const

将文档打印到给定 printer QPagedPaintDevice 必须设置,先于与此函数一起使用。

这是将整个文档,打印到打印机的仅方便方法。

若文档已透过指定高度被分页按 pageSize () 特性,按原样打印。

若文档未分页,例如,像文档用于 QTextEdit , then a temporary copy of the document is created and the copy is broken into multiple pages according to the size of the paint device's paperRect(). By default a 2 cm margin is set around the document contents. In addition the current page number is printed at the bottom of each page.

另请参阅 QTextEdit::print ().

void QTextDocument:: redo ( QTextCursor * cursor )

重做文档的最后编辑操作若 重做是可用的 .

提供的 cursor 位于重做编辑操作位置的末尾。

[slot] void QTextDocument:: redo ()

这是重载函数。

重做文档的最后编辑操作若 重做是可用的 .

[signal] void QTextDocument:: redoAvailable ( bool available )

此信号被发射,每当重做操作变为可用时 ( available 为 True) 或不可用 ( available 为 false)。

QVariant QTextDocument:: resource ( int type , const QUrl & name ) const

返回数据为指定 type 从资源采用给定 name .

此函数的调用是由富文本引擎,以请求未直接存储的数据通过 QTextDocument ,但仍然与之关联。例如,图像的间接引用是通过 name 属性 QTextImageFormat 对象。

资源缓存在文档内部。若在缓存中找不到资源, loadResource 被调用以试着加载资源。 loadResource 则应使用 addResource 以将资源添加到缓存。

loadResource does not load the resource, then the resourceProvider and lastly the defaultResourceProvider will be called, if set. Note that the result from the provider will not be added automatically to the cache.

另请参阅 QTextDocument::ResourceType and resourceProvider ().

[since 6.1] QTextDocument::ResourceProvider QTextDocument:: resourceProvider () const

Returns the resource provider for this text document.

该函数在 Qt 6.1 引入。

另请参阅 setResourceProvider (), defaultResourceProvider (),和 loadResource ().

int QTextDocument:: revision () const

返回文档的修订 (若撤消被启用)。

保证递增修订,当编辑未修改文档时。

另请参阅 QTextBlock::revision () 和 isModified ().

QTextFrame *QTextDocument:: rootFrame () const

返回文档的根框架。

[since 6.0] void QTextDocument:: setBaselineOffset ( qreal baseline )

Sets the base line as a% of font height to use in the document layout to baseline . The default value is 0. A positive value moves up the text, by the corresponding %; a negative value moves it down.

该函数在 Qt 6.0 引入。

另请参阅 baselineOffset (), setSubScriptBaseline (), subScriptBaseline (), setSuperScriptBaseline (),和 superScriptBaseline ().

void QTextDocument:: setDefaultCursorMoveStyle ( Qt::CursorMoveStyle style )

把默认光标移动样式设为给定 style .

另请参阅 defaultCursorMoveStyle ().

void QTextDocument:: setDefaultFont (const QFont & font )

设置默认 font 以用于文档布局。

注意: setter 函数对于特性 defaultFont .

另请参阅 defaultFont ().

[static, since 6.1] void QTextDocument:: setDefaultResourceProvider (const QTextDocument::ResourceProvider & provider )

将默认资源提供程序设为 provider .

The default provider will be used by all QTextDocuments that don't have an explicit provider set.

该函数在 Qt 6.1 引入。

另请参阅 defaultResourceProvider (), setResourceProvider (),和 loadResource ().

void QTextDocument:: setDefaultTextOption (const QTextOption & option )

将默认文本选项设为 option .

注意: setter 函数对于特性 defaultTextOption .

另请参阅 defaultTextOption ().

void QTextDocument:: setDocumentLayout ( QAbstractTextDocumentLayout * layout )

将文档设为使用给定 layout 。删除先前布局。

另请参阅 documentLayoutChanged ().

void QTextDocument:: setHtml (const QString & html )

替换文档的整个内容以给定 HTML 格式化文本按 html 字符串。撤消/重做历史被重置,当调用此函数时。

The HTML formatting is respected as much as possible; for example, "<b>bold</b> text" will produce text where the first word has a font weight that gives it a bold appearance: " bold text".

To select a css media rule other than the default "screen" rule, use setMetaInformation () with ' CssMedia ' as "info" parameter.

注意: 调用者有责任确保正确解码文本当 QString 包含的 HTML 被创建并传递给 setHtml() 时。

另请参阅 setPlainText (), 支持的 HTML 子集 ,和 setMetaInformation ().

void QTextDocument:: setIndentWidth ( qreal width )

设置 width 用于文本列表和文本块缩进。

缩进特性对于 QTextListFormat and QTextBlockFormat specify multiples of this value. The default indent width is 40.

注意: setter 函数对于特性 indentWidth .

另请参阅 indentWidth ().

void QTextDocument:: setMarkdown (const QString & markdown , QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub)

替换文档的整个内容以给定 Markdown 格式化文本按 markdown 字符串,采用给定 features 支持。默认情况下,包括所有支持的 GitHub 风格 Markdown 特征;传递 MarkdownDialectCommonMark 为更多基本剖析。

The Markdown formatting is respected as much as possible; for example, "*bold* text" will produce text where the first word has a font weight that gives it an emphasized appearance.

Parsing of HTML included in the markdown string is handled in the same way as in setHtml ;不管怎样,不支持 HTML 块内的 Markdown 格式。

可以启用 (或禁用) 剖析器的某些特征凭借 features 自变量:

常量 描述
MarkdownNoHTML 将丢弃 Markdown 文本中的任何 HTML 标签
MarkdownDialectCommonMark 剖析器仅支持由 CommonMark 标准化的特征
MarkdownDialectGitHub 剖析器支持 GitHub 方言

默认为 MarkdownDialectGitHub .

撤消/重做历史被重置,当调用此函数时。

void QTextDocument:: setMetaInformation ( QTextDocument::MetaInformation info , const QString & string )

设置文档的元信息,类型指定通过 info 到给定 string .

另请参阅 metaInformation ().

void QTextDocument:: setPlainText (const QString & text )

替换文档的整个内容采用给定纯 text 。撤消/重做历史被重置,当调用此函数时。

另请参阅 setHtml ().

[since 6.1] void QTextDocument:: setResourceProvider (const QTextDocument::ResourceProvider & provider )

Sets the provider of resources for the text document to provider .

该函数在 Qt 6.1 引入。

另请参阅 resourceProvider () 和 loadResource ().

[since 6.0] void QTextDocument:: setSubScriptBaseline ( qreal baseline )

Sets the default subscript's base line as a % of font height to use in the document layout to baseline . The default value is 16.67% (1/6 of height).

该函数在 Qt 6.0 引入。

另请参阅 subScriptBaseline (), setSuperScriptBaseline (), superScriptBaseline (), setBaselineOffset (),和 baselineOffset ().

[since 6.0] void QTextDocument:: setSuperScriptBaseline ( qreal baseline )

Sets the default superscript's base line as a % of font height to use in the document layout to baseline . The default value is 50% (1/2 of height).

该函数在 Qt 6.0 引入。

另请参阅 superScriptBaseline (), setSubScriptBaseline (), subScriptBaseline (), setBaselineOffset (),和 baselineOffset ().

[since 6.0] qreal QTextDocument:: subScriptBaseline () const

Returns the superscript's base line as a % of font height used in the document layout.

该函数在 Qt 6.0 引入。

另请参阅 setSubScriptBaseline (), setSuperScriptBaseline (), superScriptBaseline (), setBaselineOffset (),和 baselineOffset ().

[since 6.0] qreal QTextDocument:: superScriptBaseline () const

Returns the superscript's base line as a % of font height used in the document layout.

该函数在 Qt 6.0 引入。

另请参阅 setSuperScriptBaseline (), setSubScriptBaseline (), subScriptBaseline (), setBaselineOffset (),和 baselineOffset ().

QString QTextDocument:: toHtml () const

返回包含文档 HTML 表示的字符串。

The content of the document specifies its encoding to be UTF-8. If you later on convert the returned html string into a byte array for transmission over a network or when saving to disk you should use QString::toUtf8 () to convert the string to a QByteArray .

另请参阅 支持的 HTML 子集 .

QString QTextDocument:: toMarkdown ( QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const

返回字符串包含文档 Markdown 表示采用给定 features ,或空字符串,若因任何原因写入失败。

另请参阅 setMarkdown .

QString QTextDocument:: toPlainText () const

返回文档包含的纯文本。若想要格式化信息,使用 QTextCursor 代替。

此函数返回如同 toRawText (), but will replace some unicode characters with ASCII alternatives. In particular, no-break space (U+00A0) is replaced by a regular space (U+0020), and both paragraph (U+2029) and line (U+2028) separators are replaced by line feed (U+000A). If you need the precise contents of the document, use toRawText () 代替。

注意: Embedded objects, such as images, are represented by a Unicode value U+FFFC (OBJECT REPLACEMENT CHARACTER).

另请参阅 toHtml ().

QString QTextDocument:: toRawText () const

返回文档包含的原生文本,没有任何格式化信息。若想要格式化信息,使用 QTextCursor 代替。

另请参阅 toPlainText ().

void QTextDocument:: undo ( QTextCursor * cursor )

撤消文档的最后编辑操作,若撤销可用。提供 cursor 位于撤消编辑操作位置的末尾。

Qt 撤消框架 文档编制了解细节。

另请参阅 undoAvailable () 和 isUndoRedoEnabled ().

[slot] void QTextDocument:: undo ()

这是重载函数。

[signal] void QTextDocument:: undoAvailable ( bool available )

此信号被发射每当撤消操作变为可用 ( available 为 True) 或不可用 ( available 为 false)。

Qt 撤消框架 文档编制了解细节。

另请参阅 undo () 和 isUndoRedoEnabled ().

[signal] void QTextDocument:: undoCommandAdded ()

This signal is emitted every time a new level of undo is added to the QTextDocument .