本页内容

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()

详细说明

在使用搜索引擎之前,必须至少实例化一个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.