QTextBrowser Class
QTextBrowserクラスは、ハイパーテキストナビゲーションを備えたリッチテキストブラウザを提供します。詳細...
ヘッダー | #include <QTextBrowser> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
継承: | QTextEdit |
- 継承メンバを含む全メンバのリスト
- QTextBrowserは、リッチテキスト処理APIの一部です。
プロパティ
|
|
パブリック関数
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) |
保護された関数
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
の場合、qrc:/docs/index.html
を URL として使用し、setSource() を使用します。
QTextEdit およびQTextDocumentも参照して ください。
プロパティ・ドキュメント
[read-only]
modified : const bool
このプロパティは、テキストブラウザのコンテンツが変更されたかどうかを保持する。
openExternalLinks : bool
anchorClicked シグナルを発する代わりに、QDesktopServices::openUrl() を使って外部ソースへのリンクをQTextBrowser が自動的に開くかどうかを指定する。リンクのスキームが file でも qrc でもない場合、外部リンクとみなされます。
デフォルト値はfalseです。
アクセス関数:
bool | openExternalLinks() const |
void | setOpenExternalLinks(bool open) |
openLinks : bool
このプロパティは、ユーザーがマウスまたはキーボードでアクティブにしようとしたリンクを、QTextBrowser が自動的に開くかどうかを指定します。
このプロパティの値にかかわらず、anchorClicked シグナルは常に発信されます。
デフォルト値はtrueです。
アクセス関数:
bool | openLinks() const |
void | setOpenLinks(bool open) |
readOnly : const bool
このプロパティは、テキストブラウザが読み取り専用かどうかを保持します。
デフォルトでは、このプロパティはtrue
です。
searchPaths : QStringList
このプロパティは、サポートコンテンツを見つけるためにテキストブラウザによって使用される検索パスを保持します。
QTextBrowser は、画像や文書を見つけるためにこのリストを使用します。
デフォルトでは、このプロパティには空の文字列リストが含まれます。
アクセス関数:
QStringList | searchPaths() const |
void | setSearchPaths(const QStringList &paths) |
source : QUrl
このプロパティは表示されているドキュメントの名前を保持します。
ドキュメントが表示されていない場合、またはソースが不明な場合、これは無効なURLになります。
このプロパティを設定すると、QTextBrowser は、値が絶対ファイルパスでない限り、searchPaths プロパティと現在のソースのディレクトリのパスから、指定された名前のドキュメントを見つけようとします。また、オプションのアンカーをチェックし、それに応じてドキュメントをスクロールします。
ドキュメントの最初のタグが<qt type=detail>
である場合、ドキュメントはブラウザウィンドウ自体に新しいドキュメントとしてではなく、ポップアップとして表示されます。そうでない場合、ドキュメントはテキストブラウザに通常通り表示され、ファイル名が既知のMarkdownファイル拡張子で終わっているかどうかに応じて、QTextDocument::setHtml()またはQTextDocument::setMarkdown()で、テキストは指定されたドキュメントの内容に設定されます。
自動タイプ検出を避けてタイプを明示的に指定したい場合は、このプロパティを設定するのではなく、setSource ()を呼び出します。
デフォルトでは、このプロパティには空のURLが含まれます。
アクセス関数:
QUrl | source() const |
void | setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource) |
[read-only]
sourceType : const QTextDocument::ResourceType
このプロパティは、表示されるドキュメントのタイプを保持する。
ドキュメントが表示されていない場合、またはソースの型が不明な場合は、QTextDocument::UnknownResource 。それ以外の場合は、検出された型、またはsetSource() が呼び出されたときに指定された型を保持します。
アクセス関数:
QTextDocument::ResourceType | sourceType() const |
undoRedoEnabled : const 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()にいるときに偽となり、そうでないときに真となる。
int QTextBrowser::backwardHistoryCount() const
履歴の中で後方にある場所の数を返します。
void QTextBrowser::clearHistory()
訪問したドキュメントの履歴を消去し、前方および後方へのナビゲーションを無効にする。
[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 < 0 | backward() 履歴 |
i == 0 | 現在、QTextBrowser::source()を参照 |
i > 0 | forward() 履歴 |
backaction.setToolTip(browser.historyTitle(-1)); forwardaction.setToolTip(browser.historyTitle(+1));
QUrl QTextBrowser::historyUrl(int i) const
HistoryItem の URL を返します。
入力 | 戻り値 |
---|---|
i < 0 | backward() 履歴 |
i == 0 | 現在、QTextBrowser::source()を参照 |
i > 0 | forward() 履歴 |
[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 は、以下のキーボードショートカットを提供するために使用されます:
[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)
与えられたurl にあるドキュメントを、指定されたtype でロードしようとします。
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() を呼び出したとき、またはユーザがリンクをクリックしたときや同等のキー・シーケンスを押したときに、プログラム的に発生します。
© 2025 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.