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 |
- 継承したメンバを含むすべてのメンバの一覧
- QTextDocument はRich Text Processing API の一部です。
注意:このクラスの関数はすべてリエントラントです。
パブリック型
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 のアンドゥ/リドゥ操作を以下に示します:
- 文字の挿入と削除。文字の挿入または削除。同じテキストブロック内の一連の挿入または削除は、単一のアンドゥ/リドゥ操作とみなされます。
- テキストブロックの挿入または削除。た と えばテ キ ス ト を選択 し てから 削除す る と い う よ う な) 一度の操作での挿入ま たは削除の連続は、 一度の取り消 し / やり直し操作 と 見な さ れます。
- テ キ ス ト 文字書式の変更。
- テ キ ス ト ブ ロ ッ ク 書式の変更。
- テキス ト ブ ロ ッ ク グループの書式変更。
QTextCursor 、QTextEdit 、リ ッ チ テ キ ス ト 処理も 参照 。
メンバ型ドキュメント
enum QTextDocument::FindFlag
flags QTextDocument::FindFlags
この enum は、QTextDocument の find 関数で使用可能なオプションを記述します。オプションは、以下のリストから OR で組み合わせることができます:
定数 | 値 | 説明 |
---|---|---|
QTextDocument::FindBackward | 0x00001 | 前方検索ではなく後方検索を行います。 |
QTextDocument::FindCaseSensitively | 0x00002 | デフォルトでは、大文字小文字を区別せずに検索します。このオプションを指定すると、大文字小文字を区別して検索するようになります。 |
QTextDocument::FindWholeWords | 0x00004 | 完全な単語にのみマッチするようになります。 |
FindFlags型はQFlags<FindFlag>のtypedefである。FindFlag値のORの組み合わせを格納します。
enum QTextDocument::MetaInformation
この列挙型は、文書に追加できるさまざまなタイプのメタ情報を記述します。
定数 | 値 | 説明 |
---|---|---|
QTextDocument::DocumentTitle | 0 | ドキュメントのタイトル。 |
QTextDocument::DocumentUrl | 1 | ドキュメントの url。loadResource() 関数は、相対リソースをロードする際にこの url をベースとして使用します。 |
QTextDocument::CssMedia | 2 | この値は、setHtml() が呼び出されたときに、指定された CSS スタイルシートから対応する '@media' ルールがあれば、それを選択するために使用されます。この列挙値は Qt 6.3 で導入されました。 |
QTextDocument::FrontMatter | 3 | この値は、ソースファイルのパース時にヘッダーマテリアルが抽出された場合、それを選択するために使用されます(現在はMarkdownフォーマットからのみ)。この列挙値は Qt 6.8 で導入されました。 |
metaInformation(),setMetaInformation(),setHtml()も参照してください 。
[alias, since 6.1]
QTextDocument::ResourceProvider
std::function<QVariant(constQUrl&)> の型エイリアス。
この型定義は Qt 6.1 で導入された。
enum QTextDocument::ResourceType
この列挙型は、QTextDocument のloadResource() 関数やQTextBrowser::setSource() でロードできるリソースのタイプを記述する。
定数 | 値 | 説明 |
---|---|---|
QTextDocument::UnknownResource | 0 | リソースが読み込まれないか、リソースの種類がわからない。 |
QTextDocument::HtmlResource | 1 | リソースには HTML が含まれています。 |
QTextDocument::ImageResource | 2 | リソースが画像データを含んでいる。現在サポートされているデータ型はQMetaType::QPixmap とQMetaType::QImage です。対応するバリアントの型がQMetaType::QByteArray の場合、Qt はQImage::loadFromData を使用して画像のロードを試みます。QMetaType::QIcon は現在サポートされていません。アイコンは、例えばQIcon::pixmap を使って、最初にサポートされているデータ型に変換する必要があります。 |
QTextDocument::StyleSheetResource | 3 | リソースにCSSが含まれています。 |
QTextDocument::MarkdownResource | 4 | リソースにはMarkdownが含まれています。 |
QTextDocument::UserResource | 100 | ユーザー定義のリソースタイプで最初に利用可能な値です。 |
loadResource() およびQTextBrowser::sourceType()も参照して ください。
enum QTextDocument::Stacks
定数 | 値 | 説明 |
---|---|---|
QTextDocument::UndoStack | 0x01 | 元に戻すスタック。 |
QTextDocument::RedoStack | 0x02 | やり直しスタック。 |
QTextDocument::UndoAndRedoStacks | UndoStack | RedoStack | 元に戻すスタックとやり直しスタックの両方。 |
プロパティ Documentation
baseUrl : QUrl
このプロパティは、ドキュメント内の相対リソースURLを解決するために使用されるベースURLを保持します。
リソースURLは、ベースURLのターゲットと同じディレクトリ内にあるように解決されます。つまり、最後の'/'以降のパスの部分は無視されます。
ベースURL | 相対URL | 解決されたURL |
---|---|---|
file:///path/to/content | images/logo.png | file:///path/to/images/logo.png |
ファイル:///パス/から/コンテンツ/へ | 画像/ロゴ.png | file:///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
テキス ト リ ス ト と テ キ ス ト ブ ロ ッ ク の字下げに使われる幅を返 し ます。
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です。
このプロパティを設定すると、ドキュメントの内容に直ちに制限が適用されることに注意してください。
このプロパティを設定すると、元に戻すやり直し履歴も無効になります。
このプロパティは、表やフレームを持つ文書では未定義です。
アクセス関数:
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)
type とname を識別子として、リソースresource をリソースキャッシュに追加します。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 は、実行される検索のタイプを制御します。
マッチが見つかればマッチを選択したカーソルを返し、そうでなければヌルカーソルを返します。
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 によって呼び出されるとき、type はQTextDocument::ResourceType の値の1つになります。
QTextDocument QTextDocument が の子オブジェクトで、 や などの呼び出し可能な loadResource メソッドを持っている場合、デフォルトの実装では親オブジェクトからデータを取得しようとします。QObject QTextEdit QTextBrowser
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
QTextDocument::ResourceProviderも参照して ください。
void QTextDocument::markContentsDirty(int position, int length)
与えられたposition とlength で指定された内容を "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 が呼び出されてリソースの読み込みを試みます。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 に設定します。
このデフォルト・プロバイダは、明示的なプロバイダが設定されていないすべての 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 Subset、setMetaInformation ()も参照 。
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 引数で有効または無効にすることができます:
定数 | 説明 |
---|---|
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)
テキストドキュメントのリソースの提供者を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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。