QTextDocument Class

QTextDocument クラスは、フォーマットされたテキストを保持します。詳細...

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

注意:このクラスの関数はすべてリエントラントです。

パブリック型

enum FindFlag { FindBackward, FindCaseSensitively, FindWholeWords }
flags FindFlags
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)

保護された関数

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

詳細説明

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

各文書要素は、関連するフォーマットオブジェクトによって記述されます。各フォーマットオブジェクトは、QTextDocuments では一意なオブジェクトとして扱われ、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 のアンドゥ/リドゥ操作を以下に示します:

  • 文字の挿入と削除。文字の挿入または削除。同じテキストブロック内の一連の挿入または削除は、単一のアンドゥ/リドゥ操作とみなされます。
  • テキストブロックの挿入または削除。た と えばテ キ ス ト を選択 し てから 削除す る と い う よ う な) 一度の操作での挿入ま たは削除の連続は、 一度の取り消 し / やり直し操作 と 見な さ れます。
  • テ キ ス ト 文字書式の変更。
  • テ キ ス ト ブ ロ ッ ク 書式の変更。
  • テキス ト ブ ロ ッ ク グループの書式変更。

QTextCursorQTextEditリ ッ チ テ キ ス ト 処理も 参照

メンバ型ドキュメント

enum QTextDocument::FindFlag
flags QTextDocument::FindFlags

この enum は、QTextDocument の find 関数で使用可能なオプションを記述します。オプションは、以下のリストから OR で組み合わせることができます:

定数説明
QTextDocument::FindBackward0x00001前方検索ではなく後方検索を行います。
QTextDocument::FindCaseSensitively0x00002デフォルトでは、大文字小文字を区別せずに検索します。このオプションを指定すると、大文字小文字を区別して検索するようになります。
QTextDocument::FindWholeWords0x00004完全な単語にのみマッチするようになります。

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

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&)> の型エイリアス。

この型定義は Qt 6.1 で導入された。

enum QTextDocument::ResourceType

この列挙型は、QTextDocumentloadResource() 関数やQTextBrowser::setSource() でロードできるリソースのタイプを記述する。

定数説明
QTextDocument::UnknownResource0リソースが読み込まれないか、リソースの種類がわからない。
QTextDocument::HtmlResource1リソースには HTML が含まれています。
QTextDocument::ImageResource2リソースが画像データを含んでいる。現在サポートされているデータ型はQMetaType::QPixmapQMetaType::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元に戻すスタックとやり直しスタックの両方。

プロパティ Documentation

baseUrl : QUrl

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

リソースURLは、ベースURLのターゲットと同じディレクトリ内にあるように解決されます。つまり、最後の'/'以降のパスの部分は無視されます。

ベースURL相対URL解決されたURL
file:///path/to/contentimages/logo.pngfile:///path/to/images/logo.png
ファイル:///パス/から/コンテンツ/へ画像/ロゴ.pngfile:///path/to/content/images/logo.png
ファイル:///path/to/content/index.html画像/ロゴ.pngファイル:///path/to/content/images/logo.png
file:///path/to/content/images/ロゴ.png../images/logo.pngファイル:///path/to/content/images/logo.png

アクセス機能

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

Notifier シグナル:

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

ア ク セ ス関数 : デフ ォ ル ト ス タ イルシー ト は、 文書に挿入 さ れ る すべての新 し い HTML 組版テ キ ス ト に適用 さ れます (た と えばsetHtml () やQTextCursor::insertHtml () を用いて)。

スタイル・シートは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です。

アクセス関数:

qreal documentMargin() const
void setDocumentMargin(qreal margin)

indentWidth : qreal

テキス ト リ ス ト と テ キ ス ト ブ ロ ッ ク の字下げに使われる幅を返 し ます。

QTextListFormatQTextBlockFormat のインデント・プロパティはこの値の倍数を指定します。デフォルトのインデント幅は 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です。

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

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

このプロパティは、表やフレームを持つ文書では未定義です。

アクセス関数:

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 : const QSizeF

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

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

幅は常に >=pageSize().width() であることに注意。

デフ ォル ト では、 新 し く 生成 さ れた空の文書の場合、 こ のプ ロ パテ ィ には設定に依存 し たサ イ ズが格納 さ れます。

アクセス関数:

QSizeF size() const

setTextWidth() ・setPageSize() ・idealWidth()も参照

textWidth : qreal

text width は、 文書内のテ キ ス ト に対 し て推奨 さ れ る 幅を指定 し ます。テ キ ス ト (ま たは内容全般) が、 指定 し た幅よ り も広い と きは、 複数行に分割 さ れて縦方向に伸長 し ます。テキストが指定されたテキスト幅に収まるように複数行に分割できない場合は大きくなり、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)

typename を識別子として、リソースresource をリソースキャッシュに追加します。typeQTextDocument::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 ()、textWidthsizeも参照

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 クラスで使用され、カーソルが矢印キーで移動されたときにシグナルが必要な場合は、QTextEditcursorPositionChanged() シグナルを使用できます。

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 は、実行される検索のタイプを制御します。

マッチが見つかればマッチを選択したカーソルを返し、そうでなければヌルカーソルを返します。

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 が見つかればマッチを選択したカーソルを返し、そうでなければヌルカーソルを返す。

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

Text Block関数は、ドキュメントの最初のテキスト・ブロックを返します。

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)

指定されたname のリソースから、指定されたtype のデータを読み込みます。

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

Qt によって呼び出されるとき、typeQTextDocument::ResourceType の値の1つになります。

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

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

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

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

与えられたpositionlength で指定された内容を "dirty "としてマークし、再度レイアウトする必要があることを文書に知らせます。

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

info で指定した型のドキュメントのメタ情報を返す。

setMetaInformation()も参照のこと

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

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

たとえば、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文書に対する最後の編集操作をやり直します。

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

このシグナルは、やり直し操作が利用可能になる (available が真)、または利用不可能になる (available が偽)たびに発せられます。

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

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

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

リ ソ ース は文書内で内部的にキ ャ ッ シ ュ さ れます。リソースがキャッシュに見つからない場合、loadResource が呼び出されてリソースの読み込みを試みます。loadResourceaddResource を使ってリソースをキャッシュに追加します。

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 に設定します。

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

この関数は 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 "と指定すると、最初の単語が太字に見えるようなフォントの太さを持つテキストが生成されます:「太字テキスト"。

デフォルトの "screen "ルール以外のcssメディアルールを選択するには、"info "パラメータに'CssMedia'を指定して、setMetaInformation ()を使用します。

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

setPlainText ()、Supported HTML SubsetsetMetaInformation)も参照

void QTextDocument::setIndentWidth(qreal width)

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

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

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

indentWidth()も参照してください

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

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

Markdownのフォーマットは可能な限り尊重されます。例えば、"*bold* text "と指定すると、最初の単語が強調されたようなフォントの太さのテキストが生成されます。

markdown 文字列に含まれるHTMLの解析は、setHtml と同じ方法で処理されます ; しかし、HTMLブロック内のMarkdownフォーマットはサポートされていません。

パーサーのいくつかの機能は、features 引数で有効または無効にすることができます:

定数説明
MarkdownNoHTMLMarkdownテキスト内の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)

テキストドキュメントのリソースの提供者を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 (OBJECT REPLACEMENT CHARACTER) で表 さ れます。

toHtml()も参照

QString QTextDocument::toRawText() const

書式情報を一切持たずに、文書に含まれる生のテキストを返します。書式情報が必要な場合は、代わりにQTextCursor を使用します。

toPlainText()も参照

void QTextDocument::undo(QTextCursor *cursor)

元に戻す ドキュメントの最後の編集操作を元に戻します。提供されるcursor は、編集操作が取り消された場所の末尾に配置されます。

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

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

[slot] void QTextDocument::undo()

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

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

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

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

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

[signal] void QTextDocument::undoCommandAdded()

このシグナルは、QTextDocument に新しいアンドゥレベルが追加されるたびに発行されます。

本書に含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。