このページでは

QTextDocument Class

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
enum MarkdownFeature { MarkdownNoHTML, MarkdownDialectCommonMark, MarkdownDialectGitHub }
flags MarkdownFeatures
enum MetaInformation { DocumentTitle, DocumentUrl, CssMedia, FrontMatter }
(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
(since 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 QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const
QTextCursor find(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) 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
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 *object(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)
(since 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)
(since 6.0) void setSubScriptBaseline(qreal baseline)
(since 6.0) void setSuperScriptBaseline(qreal baseline)
void setTextWidth(qreal width)
void setUndoRedoEnabled(bool enable)
void setUseDesignMetrics(bool b)
QSizeF size() const
(since 6.0) qreal subScriptBaseline() const
(since 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)

protected関数

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

詳細な説明

QTextDocumentは、構造化されたリッチテキスト文書を格納するコンテナであり、書式付きテキストや、リスト、表、フレーム、画像などのさまざまな種類の文書要素をサポートしています。これらは、QTextEdit 内で使用するために作成することも、単独で使用することもできます。

各ドキュメント要素は、関連付けられたフォーマットオブジェクトによって記述されます。各フォーマットオブジェクトは QTextDocument によって一意のオブジェクトとして扱われ、objectForFormat() に渡すことで、それが適用されているドキュメント要素を取得することができます。

QTextDocumentはQTextCursor を使用してプログラムから編集することができ、その内容はドキュメント構造を走査することで確認できます。 ドキュメント構造全体は、ルートフレームの下位にあるドキュメント要素の階層として格納されており、rootFrame() 関数で取得できます。あるいは、ドキュメントのテキストコンテンツのみを反復処理したい場合は、begin()、end()、およびfindBlock() を使用して、検査や反復処理が可能なテキストブロックを取得できます。

ドキュメントのレイアウトは、documentLayout() によって決定されます。独自のレイアウトロジックを使用したい場合は、独自のQAbstractTextDocumentLayout サブクラスを作成し、setDocumentLayout() を使用して設定することができます。 ドキュメントのタイトルやその他のメタ情報は、metaInformation() 関数を呼び出すことで取得できます。QTextEdit クラスを介してユーザーに公開されているドキュメントの場合、ドキュメントのタイトルはQTextEdit::documentTitle() 関数からも取得可能です。

toPlainText() およびtoHtml() という便利関数を使用すると、ドキュメントの内容をプレーンテキストおよび HTML として取得できます。ドキュメントのテキストは、find() 関数を使用して検索できます。

ドキュメントに対して行われた操作の取り消し/やり直しは、setUndoRedoEnabled() 関数を使用して制御できます。取り消し/やり直しシステムは、undo() およびredo() スロットを通じてエディタウィジェットから制御可能です。また、ドキュメントは、接続されたエディタウィジェットに取り消し/やり直しシステムの状態を通知するcontentsChanged()、undoAvailable()、およびredoAvailable() シグナルも提供しています。 QTextDocument の元に戻す/やり直し操作は以下の通りです:

  • 文字の挿入または削除。同じテキストブロック内での一連の挿入または削除は、単一の取り消し/やり直し操作とみなされます。
  • テキストブロックの挿入または削除。単一の操作内での一連の挿入または削除(例:テキストを選択してから削除する場合)は、単一の元に戻す/やり直し操作とみなされます。
  • テキスト文字の書式変更。
  • テキストブロックの書式変更。
  • テキストブロックグループの書式変更。

「 QTextCursor 」、「QTextEdit 」、および「Rich Text Processing」も参照してください 。

メンバ型のドキュメント

enum QTextDocument::FindFlag
flags QTextDocument::FindFlags

この列挙型は、QTextDocument のfind関数で利用可能なオプションを表しています。以下のリストから、オプションをOR演算で組み合わせることができます。

定数値説明
QTextDocument::FindBackward0x00001前方ではなく後方から検索します。
QTextDocument::FindCaseSensitively0x00002デフォルトでは、find 関数は大文字と小文字を区別しません。このオプションを指定すると、大文字と小文字を区別する検索動作に変更されます。
QTextDocument::FindWholeWords0x00004完全な単語のみを検索対象とします。

FindFlags 型は、QFlags<FindFlag> の typedef です。FindFlag 値の OR 組み合わせを格納します。

enum QTextDocument::MarkdownFeature
flags QTextDocument::MarkdownFeatures

この列挙型は、Markdown の読み込みまたは書き込み時にサポートされる機能セットを選択します。

定数値説明
QTextDocument::MarkdownNoHTML0x0020 | 0x0040Markdownテキスト内のHTMLタグはすべて除外されます
QTextDocument::MarkdownDialectCommonMark0CommonMarkで標準化された機能のみ
QTextDocument::MarkdownDialectGitHub0x0004 | 0x0008 | 0x0400 | 0x0100 | 0x0200 | 0x0800 | 0x4000 | 0x100000GitHub 方言のほとんどの機能

具体的には、GitHub ダイアレクトのサポート対象となるサブセットには、CommonMark のすべての機能に加え、以下の機能が含まれます:

  • URL、www、メールアドレスを認識し、リンクに変換する機能
  • 取り消し線
  • 下線(イタリック体とは区別される。CommonMarkでは同じ扱い)
  • 表
  • タスクリスト
  • front matter

「フロントマター」は、多くの場合 YAML 形式のメタデータです。Qt には現在、そのためのパーサーは含まれていませんが、サードパーティ製のパーサーを選択し、QTextDocument::metaInformation() を呼び出してブロック全体を取得し、Qt が Markdown ファイルを解析した後に独自のパーサーを呼び出すことができます。

注: toMarkdown() による Markdown出力には 、別の列挙型値を指定して無効化しようとしても、GitHub 機能が含まれてしまう場合があります。これは将来の Qt バージョンで修正される可能性があります。

MarkdownFeatures 型は、QFlags<MarkdownFeature> の typedef です。これは、MarkdownFeature 値の論理和(OR)の組み合わせを格納します。

toMarkdown() およびsetMarkdown()も参照してください 。

enum QTextDocument::MetaInformation

この列挙型は、ドキュメントに追加できるさまざまな種類のメタ情報を定義しています。

定数値説明
QTextDocument::DocumentTitle0ドキュメントのタイトル。
QTextDocument::DocumentUrl1ドキュメントの URL。loadResource() 関数は、相対リソースをロードする際に、この URL を基準として使用します。
QTextDocument::CssMedia2この値は、setHtml() が呼び出された際に、指定された CSS スタイルシートから対応する「@media」ルール(存在する場合)を選択するために使用されます。この列挙型値は Qt 6.3 で導入されました。
QTextDocument::FrontMatter3この値は、ソースファイルの解析中にヘッダー素材が抽出された場合(現在は Markdown 形式からのみ)、その素材を選択するために使用されます。この列挙型値は Qt 6.8 で導入されました。

metaInformation()、setMetaInformation()、およびsetHtml()も参照してください 。

[alias, since 6.1] QTextDocument::ResourceProvider

std::function<QVariant(constQUrl&)> の型エイリアス。

この typedef は Qt 6.1 で導入されました。

enum QTextDocument::ResourceType

この列挙型は、QTextDocument のloadResource()関数、またはQTextBrowser::setSource()によって読み込むことができるリソースの種類を表します。

定数定数値説明
QTextDocument::UnknownResource0リソースが読み込まれていないか、リソースのタイプが不明です。
QTextDocument::HtmlResource1リソースには HTML が含まれています。
QTextDocument::ImageResource2リソースに画像データが含まれています。現在サポートされているデータ型は、QMetaType::QPixmap およびQMetaType::QImage です。対応するバリアントの型がQMetaType::QByteArray の場合、Qt はQImage::loadFromData を使用して画像の読み込みを試みます。QMetaType::QIcon は現在サポートされていません。アイコンは、まずQIcon::pixmap などを使用して、サポートされている型のいずれかに変換する必要があります。
QTextDocument::StyleSheetResource3リソースに CSS が含まれています。
QTextDocument::MarkdownResource4リソースに Markdown が含まれています。
QTextDocument::UserResource100ユーザー定義のリソースタイプで利用可能な最初の値。

loadResource() およびQTextBrowser::sourceType()も参照してください 。

enum QTextDocument::Stacks

定数値説明
QTextDocument::UndoStack0x01アンドゥ・スタック。
QTextDocument::RedoStack0x02やり直しスタック。
QTextDocument::UndoAndRedoStacksUndoStack | RedoStackアンドゥ・スタックとリドゥ・スタックの両方。

プロパティのドキュメント

baseUrl : QUrl

このプロパティは、ドキュメント内の相対リソースURLを解決するために使用されるベースURLを保持します。

リソースURLは、ベースURLのターゲットと同じディレクトリ内にあるものとして解決されるため、最後の「/」以降のパス部分はすべて無視されます。

ベース URL相対 URL解決後のURL
file:///path/to/contentimages/logo.pngfile:///画像へのパス/logo.png
file:///コンテンツへのパス/images/logo.pngfile:///コンテンツへのパス/images/logo.png
file:///コンテンツへのパス/index.htmlimages/logo.pngfile:///コンテンツへのパス/images/logo.png
file:///コンテンツへのパス/images/../images/logo.pngfile:///コンテンツへのパス/images/logo.png

アクセス関数:

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

通知シグナル:

void baseUrlChanged(const QUrl &url)

[read-only] blockCount : int

このプロパティは、ドキュメント内のテキストブロックの数を保持します。

テーブルやフレームを含む文書では、このプロパティの値は未定義となります。

デフォルトでは、このプロパティが定義されている場合、その値は 1 になります。

アクセス関数:

int blockCount() const

lineCount() およびcharacterCount()も参照してください 。

defaultFont : QFont

このプロパティは、ドキュメントのテキストを表示するために使用される既定のフォントを保持します

アクセス関数:

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

defaultStyleSheet : QString

デフォルトのスタイルシートは、setHtml() やQTextCursor::insertHtml() などを使用して、文書に挿入されるすべての新しい HTML 形式のテキストに適用されます。

スタイルシートは、CSS 2.1の構文に準拠している必要があります。

注:デフォルトのスタイルシートを変更しても、ドキュメントの既存のコンテンツには何の影響もありません。

アクセス機能:

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

「サポートされている HTML サブセット」も参照してください 。

defaultTextOption : QTextOption

このプロパティを設定すると、ドキュメント内のすべてのQTextLayoutに対して、デフォルトのテキストオプションが設定されます。

QTextBlockが作成されると、そのQTextLayout にdefaultTextOptionが設定されます。これにより、デフォルトの改行モードなど、ドキュメント全体のプロパティを設定することが可能になります。

アクセス関数:

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

documentMargin : qreal

文書周囲の余白。デフォルトは 4 です。

Accessの関数:

qreal documentMargin() const
void setDocumentMargin(qreal margin)

indentWidth : qreal

テキストラリストおよびテキストブロックのインデントに使用される幅を返します。

QTextListFormat およびQTextBlockFormat のインデントプロパティは、この値の倍数を指定します。デフォルトのインデント幅は 40 です。

アクセス関数:

qreal indentWidth() const
void setIndentWidth(qreal width)

[since 6.4] layoutEnabled : bool

このプロパティは、QTextDocument が変更のたびにレイアウトを再計算するかどうかを指定します

このプロパティを true に設定すると、ドキュメントへの変更があるたびにレイアウトが実行されます。これにより、すべてが期待通りに動作しますが、時間がかかります。

レイアウトを一時的に無効にすると、複数の変更(テキストコンテンツだけでなく、デフォルトのフォントやデフォルトのテキストオプションなども含みます)を行う際に時間を節約でき、ドキュメントのレイアウトは最後に一度だけ行われます。これは、例えばテキストの幅やページサイズがまだ不明な場合などに役立ちます。

デフォルトでは、このプロパティの値はtrue です。

この列挙型はQt 6.4で導入されました。

アクセス関数:

bool isLayoutEnabled() const
void setLayoutEnabled(bool b)

関連項目: setTextWidth 。

maximumBlockCount : int

ドキュメント内のブロックの最大数を指定します。

ドキュメントに含まれるブロックの最大数を指定します。ドキュメント内のブロック数がこのプロパティで指定された数を超える場合、ドキュメントの先頭からブロックが削除されます。

負の値または 0 を指定すると、ドキュメントにブロックを無制限に含めることができます。

デフォルト値は 0 です。

このプロパティを設定すると、制限がドキュメントの内容に即座に適用されることに注意してください。

また、このプロパティを設定すると、元に戻す/やり直し履歴が無効になります。

このプロパティは、テーブルやフレームを含むドキュメントでは未定義となります。

アクセス関数:

int maximumBlockCount() const
void setMaximumBlockCount(int maximum)

modified : bool

このプロパティは、ドキュメントがユーザーによって変更されたかどうかを示すものです

デフォルトでは、このプロパティの値はfalse です。

アクセス関数:

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

modificationChanged()も参照してください 。

pageSize : QSizeF

このプロパティには、ドキュメントのレイアウトに使用するページサイズが格納されます。

単位は、基盤となる描画デバイスによって決定されます。画面への描画時には論理ピクセル単位で、プリンタへの描画時にはポイント(1/72インチ)単位でサイズが測定されます。

デフォルトでは、新しく作成された空のドキュメントの場合、このプロパティには未定義のサイズが格納されます。

アクセス関数:

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

関連項目: ` modificationChanged()`。

[read-only] size : QSizeF

このプロパティは、ドキュメントの実際のサイズを保持します。これは、documentLayout()->documentSize(); と同等です。

ドキュメントのサイズは、テキストの幅を設定するか、ページ全体のサイズを設定することで変更できます。

なお、幅は常にpageSize().width() 以上であることに注意してください。

デフォルトでは、新しく作成された空のドキュメントの場合、このプロパティには設定に依存するサイズが格納されます。

アクセス関数:

QSizeF size() const

setTextWidth()、setPageSize()、およびidealWidth()も参照してください 。

textWidth : qreal

テキスト幅は、ドキュメント内のテキストの推奨幅を指定します。テキスト(またはコンテンツ全般)が指定された幅よりも広い場合、テキストは複数行に分割され、縦方向に伸びます。テキストを指定されたテキスト幅に収めるために複数行に分割できない場合、テキストはより大きくなり、size() およびidealWidth() プロパティにその状態が反映されます。

テキスト幅が -1 に設定されている場合、明示的な改行や新しい段落によって強制されない限り、テキストは複数行に分割されません。

デフォルト値は -1 です。

テキスト幅を設定すると、ページの高さも -1 に設定され、ドキュメントが垂直方向に連続的に拡大または縮小します。ドキュメントのレイアウトでテキストを複数のページに分割したい場合は、代わりにpageSize プロパティを設定する必要があります。

アクセス関数:

qreal textWidth() const
void setTextWidth(qreal width)

関連項目: size()、idealWidth()、pageSize()も参照してください 。

undoRedoEnabled : bool

このプロパティは、このドキュメントで「元に戻す」および「やり直し」が有効になっているかどうかを表します

デフォルトでは true です。無効にすると、元に戻すスタックはクリアされ、そこに項目が追加されることはありません。

アクセス関数:

bool isUndoRedoEnabled() const
void setUndoRedoEnabled(bool enable)

useDesignMetrics : bool

このプロパティは、ドキュメントがテキストレイアウトの精度を高めるためにフォントのデザインメトリクスを使用するかどうかを指定します

このプロパティが true に設定されている場合、レイアウトではデザインメトリクスが使用されます。そうでない場合は、QAbstractTextDocumentLayout::setPaintDevice() で設定されたペイントデバイスのメトリクスが使用されます。

デザインメトリクスを使用すると、レイアウトの幅はヒンティングやピクセルの丸め処理に依存しなくなります。つまり、ペイントデバイスのメトリクスに基づいて幅がより直線的にスケーリングされるため、WYSIWYG テキストレイアウトが可能になります。

デフォルトでは、このプロパティは `false` です。

アクセス関数:

bool useDesignMetrics() const
void setUseDesignMetrics(bool b)

メンバ関数のドキュメント

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

指定されたparent を使用して、空のQTextDocumentを作成します。

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

指定されたプレーン(書式なし)のtext を含むQTextDocumentを、指定されたparent を設定して生成します。

[virtual noexcept] QTextDocument::~QTextDocument()

その文書を破棄します。

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

リソースresource を、識別子としてtype およびname を使用して、リソースキャッシュに追加します。type は、QTextDocument::ResourceType に記載されている値である必要があります。

たとえば、ドキュメント内から参照できるように、画像をリソースとして追加することができます:

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

QTextCursor API を使用して、画像をドキュメントに挿入できます:

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

あるいは、HTMLのimg タグを使用して画像を挿入することもできます:

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

void QTextDocument::adjustSize()

文書を適切なサイズに調整します。

idealWidth()、textWidth 、およびsizeも参照してください 。

QList<QTextFormat> QTextDocument::allFormats() const

その文書で使用されているすべての書式に対応するテキスト書式のリストを返します。

int QTextDocument::availableRedoSteps() const

利用可能なリドゥステップの数を返します。

isRedoAvailable()も参照してください 。

int QTextDocument::availableUndoSteps() const

利用可能な元に戻す操作のステップ数を返します。

isUndoAvailable()も参照してください 。

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

ドキュメントのレイアウトで使用されるベースラインオフセットを%単位で返します。

この関数は Qt 6.0 で導入されました。

関連項目: setBaselineOffset()、setSubScriptBaseline()、subScriptBaseline()、setSuperScriptBaseline()、およびsuperScriptBaseline()を参照してください 。

QTextBlock QTextDocument::begin() const

ドキュメントの最初のテキストブロックを返します。

firstBlock()も参照してください 。

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

このシグナルは、ドキュメント内のテキストブロックの総数が変更されたときに発火します。newBlockCount に渡される値は、新しい総数です。

QChar QTextDocument::characterAt(int pos) const

位置pos にある文字を返します。位置が範囲外の場合は、ヌル文字を返します。

characterCount()も参照してください 。

int QTextDocument::characterCount() const

このドキュメントの文字数を返します。

注: QTextDocument には常に少なくとも1つのQChar::ParagraphSeparator が含まれているため 、このメソッドは少なくとも1を返します。

関連項目: ` blockCount()` および `characterAt()`。

[virtual] 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 を作成します。parent は、返されるテキストドキュメントの親となります。

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

このシグナルは、ドキュメントの内容が変更されるたびに発生します。たとえば、テキストの挿入や削除、書式の適用が行われた場合などです。

変更が発生したドキュメント内の文字のposition 、削除された文字数 (charsRemoved)、および追加された文字数 (charsAdded) に関する情報が提供されます。

このシグナルは、ドキュメントのレイアウトマネージャーに変更が通知される前に発信されます。このフックを使用することで、ドキュメントの構文強調表示を実装することができます。

QAbstractTextDocumentLayout::documentChanged() およびcontentsChanged()も参照してください 。

[signal] void QTextDocument::contentsChanged()

このシグナルは、ドキュメントの内容が変更されるたびに発生します。たとえば、テキストが挿入または削除されたとき、あるいは書式が適用されたときなどです。

contentsChange()も参照してください 。

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

指定されたformat に基づいて、新しいドキュメントオブジェクト(QTextObject )を作成して返します。

QTextObjectは常にこのメソッドを通じて作成されるため、ドキュメント内でカスタムテキストオブジェクトを使用する場合は、このメソッドを再実装する必要があります。

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

このシグナルは、編集操作によってカーソルの位置が変更された際に発火します。変更されたカーソルは、cursor 引数として渡されます。ドキュメントがQTextEdit クラスとともに使用されており、矢印キーでカーソルが移動した際にシグナルを受け取りたい場合は、QTextEdit 内のcursorPositionChanged()シグナルを使用できます。

Qt::CursorMoveStyle QTextDocument::defaultCursorMoveStyle() const

ドキュメントから作成されるすべてのQTextCursor オブジェクトでは、デフォルトのカーソル移動スタイルが使用されます。デフォルトはQt::LogicalMoveStyle です。

setDefaultCursorMoveStyle()も参照してください 。

QFont QTextDocument::defaultFont() const

ドキュメントのレイアウトで使用されるデフォルトのフォントを返します。

注: プロパティ defaultFontのゲッター 関数です。

関連項目: setDefaultFont()。

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

デフォルトのリソースプロバイダを返します。

この関数は Qt 6.1 で導入されました。

setDefaultResourceProvider()、resourceProvider()、およびloadResource()も参照してください 。

QTextOption QTextDocument::defaultTextOption() const

デフォルトのテキストオプションは、ドキュメント内のすべてのQTextLayout オブジェクトに対して適用されます。これにより、デフォルトの改行モードなど、ドキュメント全体のプロパティを設定することができます。

注: プロパティ defaultTextOptionのゲッター 関数。

関連項目 :setDefaultTextOption()

QAbstractTextDocumentLayout *QTextDocument::documentLayout() const

このドキュメントのレイアウトを返します。

setDocumentLayout()も参照してください 。

[signal] void QTextDocument::documentLayoutChanged()

このシグナルは、新しいドキュメントレイアウトが設定されたときに発生します。

setDocumentLayout()も参照してください 。

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

p を使用して、rect にクリップされた状態でドキュメントの内容を描画します。rect がヌル矩形(デフォルト)の場合、ドキュメントはクリップされずに描画されます。

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 QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const

ドキュメント内の同じ段落内で、指定された正規表現「expr 」に一致する次の箇所を検索します。

検索は、指定されたcursor の位置から開始され、検索オプションで特に指定がない限り、文書内を前方に向かって進行します。options は、実行される検索の種類を制御します。

一致が見つかった場合は、一致箇所が選択されたカーソルを返し、見つからなかった場合は null カーソルを返します。

指定されたcursor に選択範囲がある場合、検索は選択範囲の後に開始されます。そうでない場合は、カーソルの位置から開始されます。

デフォルトでは、検索は大文字と小文字を区別せず、ドキュメント内の任意の場所にあるテキストと一致させることができます。

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

ドキュメント内の同じ段落内で、指定された正規表現「expr 」に一致する次の箇所を検索します。

検索は指定された位置from から開始され、検索オプションで特に指定がない限り、文書内を順方向に進んで行われます。options は、実行される検索の種類を制御します。

一致が見つかった場合は、一致箇所が選択されたカーソルを返し、一致が見つからなかった場合は null カーソルを返します。

from の位置が 0(デフォルト)の場合、検索はドキュメントの先頭から開始されます。それ以外の場合は、指定された位置から開始されます。

警告: 歴史的な理由により 、expr で設定された大文字小文字の区別オプションは無視されます。代わりに、options を使用して、検索で大文字小文字を区別するかどうかが決定されます。

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

文書内で文字列「subString 」の次の出現箇所を検索します。検索は、指定されたcursor の位置から開始され、検索オプションで特に指定がない限り、文書内を前方に向かって進行します。options は、実行される検索の種類を制御します。

subString が見つかった場合は、一致箇所が選択された状態でカーソルを返します。見つからなかった場合は、nullカーソルを返します。

指定された `cursor ` に選択範囲がある場合、検索は選択範囲の直後から開始されます。そうでない場合は、カーソルの位置から開始されます。

デフォルトでは、検索は大文字と小文字を区別せず、ドキュメント内の任意の場所にあるテキストと一致させることができます。

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

文書内で文字列「subString 」の次の出現箇所を検索します。検索は指定された「position 」の位置から開始され、検索オプションで特に指定がない限り、文書内を順方向に進行します。「options 」は、実行される検索の種類を制御します。

subString が見つかった場合は、一致箇所が選択されたカーソルを返します。見つからなかった場合は、nullカーソルを返します。

position が0(デフォルト)の場合、検索はドキュメントの先頭から開始されます。それ以外の場合は、指定された位置から開始されます。

これはオーバーロードされた関数です。

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

redoが利用可能な場合はtrue を返し、そうでない場合はfalse を返します。

isUndoAvailable() およびavailableRedoSteps()も参照してください 。

bool QTextDocument::isUndoAvailable() const

undo が利用可能な場合は `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 によって直接格納されていないが、それでも に関連付けられているデータを要求するために、リッチテキストエンジンによって呼び出されます。たとえば、画像はQTextImageFormat オブジェクトのname属性によって間接的に参照されます。

Qt XML によって呼び出される場合、type はQTextDocument::ResourceType の値の 1 つとなります。

QTextDocument が、QTextEdit 、QTextBrowser 、あるいはQTextDocument そのものといった、呼び出し可能なloadResourceメソッドを持つQObject の子オブジェクトである場合、デフォルトの実装では親からデータを取得しようとします。

注:この関数は 、メタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

QTextDocument::ResourceProviderも参照してください 。

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

指定されたposition およびlength で指定されたコンテンツを「変更済み」としてマークし、ドキュメントに対して再レイアウトが必要であることを通知します。

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

info で指定されたタイプのドキュメントに関するメタ情報を返します。

setMetaInformation()も参照してください 。

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

このシグナルは、ドキュメントの内容が変更され、その変更が変更状態に影響を与えるたびに発火します。changed がtrueの場合、ドキュメントは変更されています。そうでない場合はfalseです。

たとえば、ドキュメントに対してsetModified(false) を呼び出した後、テキストを挿入すると、このシグナルが発火します。その操作を元に戻してドキュメントを元の変更前の状態に戻すと、このシグナルは再度発火します。

QTextObject *QTextDocument::object(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 で使用されるドキュメントのように、ドキュメントにページ分割がされていない場合は、ドキュメントの一時コピーが作成され、そのコピーがペイントデバイスの paperRect() のサイズに応じて複数のページに分割されます。デフォルトでは、ドキュメントの内容の周囲に 2 cm の余白が設定されます。 さらに、各ページの下部に現在のページ番号が印刷されます。

QTextEdit::print()も参照してください 。

void QTextDocument::redo(QTextCursor *cursor)

redo is available の場合、ドキュメントに対する直近の編集操作をやり直します。

指定されたcursor は、編集操作がやり直された箇所の末尾に位置します。

[slot] void QTextDocument::redo()

redo is available の場合、ドキュメントに対する直前の編集操作をやり直します。

注:この スロットは オーバーロードされています。このスロットに接続するには:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        textDocument, qOverload<>(&QTextDocument::redo));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        textDocument, [receiver = textDocument]() { receiver->redo(); });
その他の例や手法については、「オーバーロードされたスロットへの接続」を参照してください。

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

このシグナルは、リドゥ操作が利用可能になったとき(available がtrueの場合)または利用不可能になったとき(available がfalseの場合)に発せられます。

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

指定された `type ` のデータを、指定された `name` を持つリソースから返します。

この関数は、リッチテキストエンジンによって呼び出され、QTextDocument によって直接格納されていないが、それでもそれに関連付けられているデータを要求するために使用されます。例えば、画像はQTextImageFormat オブジェクトのname属性によって間接的に参照されます。

リソースはドキュメント内に内部的にキャッシュされます。キャッシュ内でリソースが見つからない場合、loadResource が呼び出され、リソースの読み込みが試みられます。その後、loadResource はaddResource を使用して、そのリソースをキャッシュに追加する必要があります。

loadResource でリソースを読み込めない場合、resourceProvider が呼び出され、最後に(設定されている場合は)defaultResourceProvider が呼び出されます。プロバイダからの結果は自動的にキャッシュに追加されない点に注意してください。

QTextDocument::ResourceType およびresourceProvider()も参照してください 。

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

このテキストドキュメントのリソースプロバイダを返します。

この関数は 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)

ドキュメントのレイアウトで使用するベースラインを、フォント高さの%としてbaseline に設定します。デフォルト値は0です。正の値を設定すると、テキストが対応する%分だけ上に移動し、負の値を設定すると下に移動します。

この関数は Qt 6.0 で導入されました。

baselineOffset()、setSubScriptBaseline()、subScriptBaseline()、setSuperScriptBaseline()、およびsuperScriptBaseline()も参照してください 。

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

デフォルトのカーソル移動スタイルを、指定されたstyle に設定します。

defaultCursorMoveStyle()も参照してください 。

void QTextDocument::setDefaultFont(const QFont &font)

ドキュメントのレイアウトで使用するデフォルトのfont を設定します。

注: プロパティ `defaultFont`のセッター 関数です。

defaultFont()も参照してください 。

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

デフォルトのリソースプロバイダを `provider` に設定します。

明示的にプロバイダが設定されていないすべての QTextDocument では、このデフォルトのプロバイダが使用されます。

この関数は Qt 6.1 で導入されました。

defaultResourceProvider()、setResourceProvider()、およびloadResource()も参照してください 。

void QTextDocument::setDefaultTextOption(const QTextOption &option)

デフォルトのテキストオプションをoption に設定します。

注: プロパティ `defaultTextOption`のセッター 関数です。

defaultTextOption()も参照してください 。

void QTextDocument::setDocumentLayout(QAbstractTextDocumentLayout *layout)

指定されたlayout を使用するようにドキュメントを設定します。以前のレイアウトは削除されます。

documentLayoutChanged()も参照してください 。

void QTextDocument::setHtml(const QString &html)

ドキュメントの内容全体を、html 文字列に指定されたHTML形式のテキストに置き換えます。この関数が呼び出されると、元に戻す/やり直すの履歴がリセットされます。

HTMLの書式は可能な限り保持されます。例えば、「<b>bold</b> text」と記述すると、最初の単語が太字のように見えるフォントウェイトで表示され、「boldtext」というテキストが生成されます。

デフォルトの「screen」ルール以外の CSS メディアルールを選択するには、setMetaInformation() を呼び出し、"info" パラメータに 'CssMedia' を指定します。

注: HTML を含むQString が作成され、setHtml() に渡される際、テキストが正しくデコードされることを確認するのは、呼び出し側の責任です 。

関連項目: setPlainText()、サポートされている HTML サブセット、およびsetMetaInformation()。

void QTextDocument::setIndentWidth(qreal width)

テキストリストおよびテキストブロックのインデントに使用されるwidth を設定します。

QTextListFormat およびQTextBlockFormat のインデントプロパティは、この値の倍数で指定されます。デフォルトのインデント幅は 40 です。

注: プロパティ `indentWidth`のセッター 関数。

関連項目: indentWidth()。

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

ドキュメントの内容全体を、markdown 文字列内の指定されたMarkdown形式のテキストに置き換えます。この際、指定されたfeatures がサポートされます。デフォルトでは、サポートされているGitHubスタイルのMarkdown機能がすべて含まれます。より基本的な解析を行う場合は、MarkdownDialectCommonMark を指定してください。

Markdownの書式設定は可能な限り尊重されます。たとえば、「*太字*のテキスト」と記述すると、最初の単語のフォントの太さが調整され、強調された外観のテキストが生成されます。

markdown 文字列に含まれるHTMLの解析は、setHtml と同様の方法で処理されます。ただし、HTMLブロック内のMarkdown書式はサポートされていません。

パーサーの一部の機能は、features 引数を使用して有効または無効にできます。デフォルトは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)

テキストドキュメントのリソースプロバイダを `provider` に設定します。

この関数は Qt 6.1 で導入されました。

resourceProvider() およびloadResource()も参照してください 。

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

ドキュメントのレイアウトで使用する、下付き文字のベースラインをフォント高の何%として設定するかを、baseline に設定します。デフォルト値は 16.67%(高さの 1/6)です。

この関数は Qt 6.0 で導入されました。

subScriptBaseline()、setSuperScriptBaseline()、superScriptBaseline()、setBaselineOffset()、およびbaselineOffset()も参照してください 。

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

ドキュメントのレイアウトで使用する、上付き文字の基準線をフォント高さの何%にするかを、baseline に設定します。デフォルト値は 50%(高さの 1/2)です。

この関数は Qt 6.0 で導入されました。

superScriptBaseline()、setSubScriptBaseline()、subScriptBaseline()、setBaselineOffset()、およびbaselineOffset()も参照してください 。

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

文書レイアウトで使用されるフォント高に対する、上付き文字の基線の高さをパーセントで返します。

この関数は Qt 6.0 で導入されました。

setSubScriptBaseline()、setSuperScriptBaseline()、superScriptBaseline()、setBaselineOffset()、およびbaselineOffset()も参照してください 。

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

文書レイアウトで使用されるフォント高に対する、上付き文字のベースラインの高さをパーセントで返します。

この関数は Qt 6.0 で導入されました。

setSuperScriptBaseline()、setSubScriptBaseline()、subScriptBaseline()、setBaselineOffset()、およびbaselineOffset()も参照してください 。

QString QTextDocument::toHtml() const

ドキュメントのHTML表現を含む文字列を返します。

ドキュメントの内容では、エンコーディングがUTF-8であると指定されています。後で、ネットワーク経由での送信やディスクへの保存のために、返されたHTML文字列をバイト配列に変換する場合は、QString::toUtf8() を使用して、その文字列をQByteArray に変換する必要があります。

「サポートされているHTMLサブセット」も参照してください 。

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

指定されたfeatures を持つドキュメントの Markdown 形式の表現を含む文字列を返します。何らかの理由で書き込みに失敗した場合は、空の文字列を返します。

setMarkdownも参照してください 。

QString QTextDocument::toPlainText() const

ドキュメントに含まれるプレーンテキストを返します。書式設定情報が必要な場合は、代わりに `QTextCursor ` を使用してください。

この関数は `toRawText()` と同じ結果を返しますが、一部の Unicode 文字を ASCII 文字に置き換えます。 具体的には、非改行スペース (U+00A0) は通常のスペース (U+0020) に置き換えられ、段落区切り (U+2029) および行区切り (U+2028) は両方とも改行 (U+000A) に置き換えられます。 ドキュメントの正確な内容が必要な場合は、代わりに `toRawText()` を使用してください。

注: 画像などの埋め込み オブジェクトは、Unicode 値 U+FFFC(オブジェクト置換文字)で表されます。

toHtml()も参照してください 。

QString QTextDocument::toRawText() const

ドキュメントに含まれる、書式情報を一切含まない生のテキストを返します。書式情報が必要な場合は、代わりに `QTextCursor ` を使用してください。

toPlainText()も参照してください 。

void QTextDocument::undo(QTextCursor *cursor)

元に戻す機能が利用可能な場合、ドキュメントに対する直近の編集操作を元に戻します。渡されたcursor は、編集操作が元に戻された箇所の末尾に位置します。

詳細については、Qt Undo Frameworkのドキュメントを参照してください。

undoAvailable() およびisUndoRedoEnabled()も参照してください 。

[slot] void QTextDocument::undo()

注:この スロットは オーバーロードされています。このスロットに接続するには:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        textDocument, qOverload<>(&QTextDocument::undo));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        textDocument, [receiver = textDocument]() { receiver->undo(); });
その他の例や方法については、「オーバーロードされたスロットへの接続」を参照してください。

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

このシグナルは、元に戻す操作が利用可能になったとき(available がtrue)または利用不可能になったとき(available がfalse)に発火します。

詳細については、Qt Undo Frameworkのドキュメントを参照してください。

undo() およびisUndoRedoEnabled()も参照してください 。

[signal] void QTextDocument::undoCommandAdded()

このシグナルは、QTextDocument に新しい元に戻すレベルが追加されるたびに発生します。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.