このページでは

QTextBrowser Class

QTextBrowser クラスは、ハイパーテキストによるナビゲーション機能を備えたリッチテキストブラウザを提供します。詳細...

ヘッダー: #include <QTextBrowser>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元: QTextEdit

プロパティ

パブリック関数

QTextBrowser(QWidget *parent = nullptr)
int backwardHistoryCount() const
void clearHistory()
int forwardHistoryCount() const
QString historyTitle(int i) const
QUrl historyUrl(int i) const
bool isBackwardAvailable() const
bool isForwardAvailable() const
bool openExternalLinks() const
bool openLinks() const
QStringList searchPaths() const
void setOpenExternalLinks(bool open)
void setOpenLinks(bool open)
void setSearchPaths(const QStringList &paths)
QUrl source() const
QTextDocument::ResourceType sourceType() const

再実装されたパブリック関数

virtual QVariant loadResource(int type, const QUrl &name) override

パブリックスロット

virtual void backward()
virtual void forward()
virtual void home()
virtual void reload()
void setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

シグナル

void anchorClicked(const QUrl &link)
void backwardAvailable(bool available)
void forwardAvailable(bool available)
void highlighted(const QUrl &link)
void historyChanged()
void sourceChanged(const QUrl &src)

protected関数

virtual void doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

再実装された保護関数

virtual bool event(QEvent *e) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *ev) override
virtual void keyPressEvent(QKeyEvent *ev) override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual void paintEvent(QPaintEvent *e) override

詳細な説明

このクラスは、QTextEdit (読み取り専用モード)を拡張し、ユーザーがハイパーテキスト文書内のリンクをたどれるよう、いくつかのナビゲーション機能を追加しています。

ユーザーに編集可能なリッチテキストエディタを提供したい場合は、QTextEdit を使用してください。ハイパーテキストナビゲーションのないテキストブラウザが必要な場合は、QTextEdit を使用し、QTextEdit::setReadOnly() を使用して編集機能を無効にしてください。リッチテキストの小さな断片を表示するだけでよい場合は、QLabel を使用してください。

ドキュメントのソースと内容

QTextEdit の内容はsetHtml() またはsetPlainText() で設定されますが、QTextBrowser はsetSource() 関数も実装しており、名前付きドキュメントをソーステキストとして使用することが可能です。名前は、検索パス一覧および現在のドキュメントファクトリのディレクトリ内で検索されます。

ドキュメント名がアンカーで終わる場合(例: "#anchor" )、テキストブラウザは自動的にその位置までスクロールします(scrollToAnchor() を使用)。ユーザーがハイパーリンクをクリックすると、ブラウザはリンクのhref 値を引数としてsetSource() を呼び出します。sourceChanged() シグナルに接続することで、現在のソースを追跡できます。

QTextBrowserは、backward()およびforward()スロットを提供しており、これらを使用して「戻る」ボタンと「進む」ボタンを実装できます。home()スロットは、最初に表示されたドキュメントのテキストを設定します。anchorClicked()シグナルは、ユーザーがアンカーをクリックしたときに発火します。 ブラウザのデフォルトのナビゲーション動作を上書きするには、setSource() 関数を呼び出し、このシグナルに接続されたスロット内で新しいドキュメントテキストを指定します。

Qtリソースシステムに保存されているドキュメントを読み込む場合は、読み込むURLのスキームとしてqrc を使用します。たとえば、ドキュメントのリソースパスが:/docs/index.html の場合、setSource()を使用する際はURLとしてqrc:/docs/index.html を指定します。

QTextEdit およびQTextDocumentも参照してください 。

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

[read-only] modified : bool

このプロパティは、テキストブラウザの内容が変更されたかどうかにかかわらず、その値を維持します。

QTextBrowser が、anchorClicked シグナルを発行する代わりに、QDesktopServices::openUrl() を使用して外部ソースへのリンクを自動的に開くかどうかを指定します。リンクのスキームが「file」または「qrc」のいずれでもない場合、そのリンクは外部リンクとみなされます。

デフォルト値は false です。

アクセス関数:

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

このプロパティは、ユーザーがマウスやキーボードで操作しようとしたリンクを、QTextBrowser が自動的に開くかどうかを指定します。

このプロパティの値にかかわらず、anchorClicked シグナルは常に発火します。

デフォルト値は true です。

アクセス関数:

bool openLinks() const
void setOpenLinks(bool open)

readOnly : bool

このプロパティは、テキストブラウザが読み取り専用であるかどうかを表します

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

searchPaths : QStringList

このプロパティには、テキストブラウザが補助コンテンツを検索する際に使用する検索パスが格納されており、

QTextBrowser テキストブラウザはこのリストを使用して、画像やドキュメントの場所を特定します。

デフォルトでは、このプロパティには空の文字列リストが含まれます。

アクセス関数:

QStringList searchPaths() const
void setSearchPaths(const QStringList &paths)

source : QUrl

このプロパティには、表示されているドキュメントの名前が格納されます。

ドキュメントが表示されていない場合や、ソースが不明な場合は、このURLは無効となります。

このプロパティを設定すると、QTextBrowser は、値が絶対ファイルパスでない限り、searchPaths プロパティのパスおよび現在のソースのディレクトリ内で、指定された名前のドキュメントを検索しようとします。また、オプションのアンカーをチェックし、それに応じてドキュメントをスクロールします。

ドキュメントの最初のタグが `<qt type=detail>` である場合、そのドキュメントはブラウザウィンドウ内の新しいドキュメントとしてではなく、ポップアップとして表示されます。それ以外の場合は、テキストブラウザで通常通り表示され、テキストは `QTextDocument::setHtml()` または `QTextDocument::setMarkdown()` によって指定されたドキュメントの内容に設定されます。これは、ファイル名が既知の Markdown ファイル拡張子で終わっているかどうかによって異なります。

自動的なタイプ検出を回避し、タイプを明示的に指定したい場合は、このプロパティを設定する代わりに、setSource() を呼び出してください。

デフォルトでは、このプロパティには空のURLが含まれます。

アクセス関数:

QUrl source() const
void setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

[read-only] sourceType : QTextDocument::ResourceType

このプロパティには、表示されているドキュメントのタイプが格納されます

ドキュメントが表示されていない場合、またはソースの型が不明な場合は、QTextDocument::UnknownResource となります。それ以外の場合は、検出された型、またはsetSource()の呼び出し時に指定された型が格納されます。

アクセス関数:

QTextDocument::ResourceType sourceType() const

undoRedoEnabled : bool

このプロパティは、テキストブラウザが元に戻す/やり直し操作をサポートしているかどうかを示します。

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

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

[explicit] QTextBrowser::QTextBrowser(QWidget *parent = nullptr)

親要素がparent である空のQTextBrowserを作成します。

[signal] void QTextBrowser::anchorClicked(const QUrl &link)

このシグナルは、ユーザーがアンカーをクリックしたときに発火します。アンカーが参照するURLは、link を通じて渡されます。

なお、openLinks プロパティがfalseに設定されていない限り、または接続されたスロット内でsetSource()を呼び出さない限り、ブラウザはlink で指定された場所へのナビゲーションを自動的に処理します。この仕組みは、ブラウザのデフォルトのナビゲーション機能を上書きするために使用されます。

[virtual slot] void QTextBrowser::backward()

リンクをたどって生成されたドキュメント一覧において、表示中のドキュメントを前のドキュメントに変更します。前のドキュメントが存在しない場合は何も行いません。

forward() およびbackwardAvailable()も参照してください 。

[signal] void QTextBrowser::backwardAvailable(bool available)

このシグナルは、backward() の利用可能状態が変化したときに発火します。available は、ユーザーがhome() にアクセスしている場合は false となり、それ以外の場合は true となります。

int QTextBrowser::backwardHistoryCount() const

履歴をさかのぼって、その位置までの件数を返します。

void QTextBrowser::clearHistory()

閲覧したドキュメントの履歴を消去し、前へ・次への移動機能を無効にします。

backward() およびforward()も参照してください 。

[virtual protected] void QTextBrowser::doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

指定されたurl にあるドキュメントを、指定されたtype を使用して読み込もうとします。

setSource() は doSetSource を呼び出します。Qt 5 では、setSource(constQUrl &url) が仮想関数でした。Qt 6 では、代わりに doSetSource() が仮想関数となっており、サブクラスでオーバーライドできるようになっています。

[override virtual protected] bool QTextBrowser::event(QEvent *e)

QAbstractScrollArea::event(QEvent *event) を再実装します。

[override virtual protected] bool QTextBrowser::focusNextPrevChild(bool next)

QTextEdit::focusNextPrevChild (bool next)を再実装します。

[override virtual protected] void QTextBrowser::focusOutEvent(QFocusEvent *ev)

QTextEdit::focusOutEvent(QFocusEvent *e) を再実装します。

[virtual slot] void QTextBrowser::forward()

リンクをたどって作成されたドキュメント一覧の中から、現在表示されているドキュメントを次のドキュメントに切り替えます。次のドキュメントがない場合は、何も行いません。

backward() およびforwardAvailable()も参照してください 。

[signal] void QTextBrowser::forwardAvailable(bool available)

このシグナルは、forward() の利用可能状態が変化したときに発火します。available は、ユーザーがbackward()に移動した後はtrueとなり、ユーザーがforward()に移動または遷移したときはfalseとなります。

int QTextBrowser::forwardHistoryCount() const

履歴を何件分先へ進むかを返します。

[signal] void QTextBrowser::highlighted(const QUrl &link)

このシグナルは、ユーザーがドキュメント内のアンカーを選択したが、まだアクティブ化していない場合に発火します。アンカーが指すURLは、link を通じて渡されます。

[signal] void QTextBrowser::historyChanged()

このシグナルは、履歴が変更されたときに発せられます。

historyTitle() およびhistoryUrl()も参照してください 。

QString QTextBrowser::historyTitle(int i) const

HistoryItemのdocumentTitle()を返します。

入力戻り値
i < 0backward() 履歴
i == 0現在値、QTextBrowser::source() を参照
i > 0forward() 履歴
backaction.setToolTip(browser.historyTitle(-1));
forwardaction.setToolTip(browser.historyTitle(+1));

QUrl QTextBrowser::historyUrl(int i) const

HistoryItem の URL を返します。

入力戻り値
i < 0backward() history
i == 0現在値、QTextBrowser::source() を参照
i > 0forward() 履歴

[virtual slot] void QTextBrowser::home()

表示されているドキュメントを、履歴の最初のドキュメントに変更します。

bool QTextBrowser::isBackwardAvailable() const

テキストブラウザが `backward()` を使用してドキュメント履歴をさかのぼることができる場合、true を返します。

backwardAvailable() およびbackward()も参照してください 。

bool QTextBrowser::isForwardAvailable() const

テキストブラウザが `forward()` を使用してドキュメント履歴を前方に進むことができる場合、true を返します。

forwardAvailable() およびforward()も参照してください 。

[override virtual protected] void QTextBrowser::keyPressEvent(QKeyEvent *ev)

QTextEdit::keyPressEvent(QKeyEvent *e) を再実装します。

ev イベントは、以下のキーボードショートカットを提供するために使用されます:

キー押下アクション
Alt + 左矢印backward()
Alt+右矢印キーforward()
Alt + 上矢印home()

[override virtual] QVariant QTextBrowser::loadResource(int type, const QUrl &name)

QTextEdit::loadResource(int type, const QUrl &name) を再実装します。

この関数は、ドキュメントが読み込まれた際、およびドキュメント内の各画像について呼び出されます。type は、読み込むリソースのタイプを示します。リソースを読み込めない場合は、無効なQVariant が返されます。

デフォルトの実装では、type を無視し、name をファイル名として解釈してリソースの場所を特定しようとします。絶対パスでない場合、searchPaths プロパティで指定されたパスおよび現在のソースと同じディレクトリ内でファイルを探します。成功した場合、結果はQVariant となり、そこにはファイルの内容を含むQByteArray が格納されます。

この関数を再実装する場合、他のQVariant 型を返すことができます。以下の表は、リソースの種類に応じてサポートされているバリアント型を示しています:

[override virtual protected] void QTextBrowser::mouseMoveEvent(QMouseEvent *e)

QTextEdit::mouseMoveEvent(QMouseEvent *e) を再実装します。

[override virtual protected] void QTextBrowser::mousePressEvent(QMouseEvent *e)

QTextEdit::mousePressEvent(QMouseEvent *e) を再実装します。

[override virtual protected] void QTextBrowser::mouseReleaseEvent(QMouseEvent *e)

QTextEdit::mouseReleaseEvent(QMouseEvent *e) の再実装です。

[override virtual protected] void QTextBrowser::paintEvent(QPaintEvent *e)

QTextEdit::paintEvent(QPaintEvent *event) を再実装しています。

[virtual slot] void QTextBrowser::reload()

現在のセットソースを再読み込みします。

[slot] void QTextBrowser::setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

指定されたtype を使用して、指定されたurl のドキュメントを読み込もうとします。

type がUnknownResource (デフォルト)の場合、ドキュメントの種類が検出されます。つまり、URL が.md 、.mkd 、または.markdown の拡張子で終わる場合、ドキュメントはQTextDocument::setMarkdown() を通じて読み込まれます。それ以外の場合は、QTextDocument::setHtml() を通じて読み込まれます。この検出は、type を明示的に指定することでバイパスできます。

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

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

[signal] void QTextBrowser::sourceChanged(const QUrl &src)

このシグナルは、ソースが変更された際に発行され、src が新しいソースとなります。

ソースの変更は、setSource()、forward()、backward()、またはhome() を呼び出すといったプログラムによる操作の際、あるいはユーザーがリンクをクリックしたり、対応するキーシーケンスを入力したりした際に発生します。

© 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.