QTextBrowser Class
QTextBrowserクラスは、ハイパーテキストナビゲーションを備えたリッチテキストブラウザを提供します。詳細...
Header: | #include <QTextBrowser> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | 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も参照して ください。
プロパティ Documentation
[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)
空のQTextBrowserを親parent で構築します。
[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() history |
backaction.setToolTip(browser.historyTitle(-1)); forwardaction.setToolTip(browser.historyTitle(+1));
QUrl QTextBrowser::historyUrl(int i) const
HistoryItem の url を返します。
入力 | 戻り値 |
---|---|
i < 0 | backward() history |
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)
再リンプルメント: (QMouseEvent *e):QTextEdit::mouseReleaseEvent(QMouseEvent *e).
[override virtual protected]
void QTextBrowser::paintEvent(QPaintEvent *e)
再リンプルメント: (QMouseEvent *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() を呼び出したとき、またはユーザーがリンクをクリックしたり、同等のキーシーケンスを押したりしたときに、プログラム的に発生します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。