このページでは

QHelpSearchEngine Class

QHelpSearchEngine クラスは、全文検索の統合や、ドキュメントのインデックス作成および検索に再利用可能なウィジェットへのアクセスを提供します。詳細...

ヘッダー: #include <QHelpSearchEngine>
CMake: find_package(Qt6 REQUIRED COMPONENTS Help)
target_link_libraries(mytarget PRIVATE Qt6::Help)
qmake: QT += help
継承元: QObject

パブリック関数

QHelpSearchEngine(QHelpEngineCore *helpEngine, QObject *parent = nullptr)
virtual ~QHelpSearchEngine()
QHelpSearchQueryWidget *queryWidget()
QHelpSearchResultWidget *resultWidget()
QString searchInput() const
int searchResultCount() const
QList<QHelpSearchResult> searchResults(int start, int end) const

パブリックスロット

void cancelIndexing()
void cancelSearching()
void reindexDocumentation()
void search(const QString &searchInput)

シグナル

void indexingFinished()
void indexingStarted()
void searchingFinished(int searchResultCount)
void searchingStarted()

詳細な説明

検索エンジンを使用するには、少なくとも 1 つの `QHelpEngineCore ` オブジェクトをインスタンス化し、それを検索エンジンのコンストラクタに渡す必要があります。これは、ドキュメントのインデックス作成を開始できるタイミングを検索エンジンが把握するために、ヘルプエンジンの `setupFinished()` シグナルに接続する必要があるためです。

インデックス作成プロセスが開始されると、indexingStarted()シグナルが発信され、インデックス作成プロセスの終了時にはindexingFinished()シグナルが発信されます。インデックス作成を停止するには、cancelIndexing()を呼び出します。

インデックス作成プロセスが完了すると、検索エンジンはsearch()関数を使用して、指定された用語についてインデックス内を検索できるようになります。検索入力が検索エンジンに渡されると、searchingStarted()シグナルが発行されます。検索が完了すると、searchingFinished()シグナルが発行されます。検索プロセスは、cancelSearching()を呼び出すことで停止できます。

検索が成功した場合、検索結果の件数を引数としてsearchingFinished()が呼び出され、検索エンジンから検索結果が取得されます。範囲を指定してsearchResults()関数を呼び出すと、その範囲内のQHelpSearchResult オブジェクトのリストが返されます。結果には、ドキュメントのタイトルとURLに加え、検索入力と最も一致するドキュメントの抜粋が含まれます。

指定された検索結果を表示するには、QHelpSearchResultWidget を使用するか、より高度な機能が必要な場合は独自のウィジェットを構築してください。なお、QHelpSearchResultWidget は直接インスタンス化できません。ウィジェット自体がすべての接続を確立するため、使用中の検索エンジンからウィジェットを取得する必要があります。

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

[explicit] QHelpSearchEngine::QHelpSearchEngine(QHelpEngineCore *helpEngine, QObject *parent = nullptr)

指定されたparent を使用して、新しい検索エンジンを構築します。この検索エンジンは、指定されたhelpEngine を使用して、インデックス登録が必要なドキュメントにアクセスします。QHelpEngine のsetupFinished()シグナルは、QHelpSearchEngineのインデックス登録関数に自動的に接続されるため、このシグナルが発信されると、新しいドキュメントがインデックス登録されます。

[virtual noexcept] QHelpSearchEngine::~QHelpSearchEngine()

検索エンジンを破壊する。

[slot] void QHelpSearchEngine::cancelIndexing()

インデックス作成プロセスを停止します。

[slot] void QHelpSearchEngine::cancelSearching()

検索処理を停止します。

[signal] void QHelpSearchEngine::indexingFinished()

この信号は、インデックス作成処理が完了したときに送信されます。

[signal] void QHelpSearchEngine::indexingStarted()

この信号は、インデックス作成プロセスが開始されたときに発信されます。

QHelpSearchQueryWidget *QHelpSearchEngine::queryWidget()

入力ウィジェットとして使用するウィジェットを返します。検索エンジンの設定に応じて、サブウィジェットの数が異なるウィジェットが返されます。

[slot] void QHelpSearchEngine::reindexDocumentation()

検索エンジンに対し、すべてのドキュメントファイルの再インデックスを強制します。

QHelpSearchResultWidget *QHelpSearchEngine::resultWidget()

検索結果を格納して表示できるウィジェットを返します。

[slot] void QHelpSearchEngine::search(const QString &searchInput)

指定された検索フレーズ「searchInput 」を使用して検索処理を開始します。

検索フレーズは複数の単語で構成することができます。デフォルトでは、検索エンジンは指定されたすべての単語を含む文書のリストを返します。検索フレーズには、論理演算子「AND」、「OR」、「NOT」を任意に組み合わせて使用できます。演算子はすべて大文字で記述する必要があります。大文字で記述されていない場合、その演算子は検索フレーズの一部として扱われます。

単語をグループ化するために二重引用符を使用した場合、検索エンジンは引用符で囲まれたフレーズと完全に一致するものを検索します。

テキストクエリの構文に関する詳細については、SQLite FTS5 拡張機能を参照してください。

注:この スロットは オーバーロードされています。このスロットに接続するには:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        helpSearchEngine, qOverload(&QHelpSearchEngine::search));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        helpSearchEngine, [receiver = helpSearchEngine](const QString &searchInput) { receiver->search(searchInput); });
その他の例やアプローチについては、「オーバーロードされたスロットへの接続」を参照してください。

QString QHelpSearchEngine::searchInput() const

最後に検索されたフレーズを返します。

int QHelpSearchEngine::searchResultCount() const

検索エンジンが見つけた結果の数を返します。

QList<QHelpSearchResult> QHelpSearchEngine::searchResults(int start, int end) const

start で指定されたインデックスから、end で指定されたインデックスまでの範囲内の検索結果のリストを返します。

[signal] void QHelpSearchEngine::searchingFinished(int searchResultCount)

このシグナルは、検索処理が完了したときに発信されます。検索結果の件数は、searchResultCount に格納されます。

[signal] void QHelpSearchEngine::searchingStarted()

このシグナルは、検索プロセスが開始されたときに送信されます。

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