QHelpEngineCore Class
QHelpEngineCore 类提供了帮助系统的核心功能。更多内容...
| 头文件: | #include <QHelpEngineCore> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Help) target_link_libraries(mytarget PRIVATE Qt6::Help) |
| qmake: | QT += help |
| 继承自: | QObject |
| 被继承者: |
属性
- autoSaveFilter : bool
- collectionFile : QString
(since 6.0)readOnly : bool
公共函数
| QHelpEngineCore(const QString &collectionFile, QObject *parent = nullptr) | |
| virtual | ~QHelpEngineCore() |
| bool | autoSaveFilter() const |
| QString | collectionFile() const |
| bool | copyCollectionFile(const QString &fileName) |
| QVariant | customValue(const QString &key, const QVariant &defaultValue = {}) const |
| QString | documentationFileName(const QString &namespaceName) |
| QList<QHelpLink> | documentsForIdentifier(const QString &id) const |
| QList<QHelpLink> | documentsForIdentifier(const QString &id, const QString &filterName) const |
| QList<QHelpLink> | documentsForKeyword(const QString &keyword) const |
| QList<QHelpLink> | documentsForKeyword(const QString &keyword, const QString &filterName) const |
| QString | error() const |
| QByteArray | fileData(const QUrl &url) const |
| QList<QUrl> | files(const QString namespaceName, const QString &filterName, const QString &extensionFilter = {}) |
| QHelpFilterEngine * | filterEngine() const |
| QUrl | findFile(const QUrl &url) const |
| bool | isReadOnly() const |
| bool | registerDocumentation(const QString &documentationFileName) |
| QStringList | registeredDocumentations() const |
| bool | removeCustomValue(const QString &key) |
| void | setAutoSaveFilter(bool save) |
| void | setCollectionFile(const QString &fileName) |
| bool | setCustomValue(const QString &key, const QVariant &value) |
| void | setReadOnly(bool enable) |
| void | setUsesFilterEngine(bool uses) |
| bool | setupData() |
| bool | unregisterDocumentation(const QString &namespaceName) |
| bool | usesFilterEngine() const |
信号
| void | setupFinished() |
| void | setupStarted() |
| void | warning(const QString &msg) |
静态公共成员
| QVariant | metaData(const QString &documentationFileName, const QString &name) |
| QString | namespaceName(const QString &documentationFileName) |
详细说明
在使用帮助引擎之前,必须通过调用setupData()对其进行初始化。在设置过程开始时,会发出信号setupStarted()。从这一刻起,直到发出信号setupFinished()为止,帮助数据处于未定义状态,即无法使用。
核心帮助引擎可用于执行不同的任务。通过调用documentsForIdentifier(),引擎会返回指定帮助系统内文件位置的 URL。随后可通过调用fileData() 获取实际的文件数据。
帮助引擎可以包含任意数量的自定义过滤器。过滤器的管理(包括添加新过滤器、修改过滤器定义或删除现有过滤器)均通过QHelpFilterEngine 类完成,该类可通过filterEngine() 方法访问。
注意: QHelpFilterEngine 取代了旧版过滤器 API,后者自 Qt 5.13 起已弃用。请将true 作为参数传递给setUsesFilterEngine() 方法,以启用新功能。
核心帮助引擎有两种模式:
- 只读模式:除非显式请求,否则不会修改帮助集合文件。当集合文件位于只读位置时,此模式同样有效,且为默认模式。
- 完全可写模式:此模式要求帮助集合文件具有可写权限。
可在调用setupData()之前,通过调用setReadOnly()方法来更改模式。
该帮助引擎还支持以类似于 ini 文件或 Windows 注册表项的方式持久化地设置和读取值。有关详细信息,请参阅setCustomValue() 或customValue()。
该类不提供任何用于索引或目录的GUI组件或功能。若需此类功能,请改用QHelpEngine 。
属性文档
autoSaveFilter : bool
无论QHelpEngineCore 是否处于自动保存过滤器模式,此属性均有效。
如果QHelpEngineCore 处于自动保存过滤器模式,当通过QHelpFilterEngine::setActiveFilter()函数更改当前过滤器时,该过滤器会自动保存。该过滤器将持久地保存在帮助集合文件中。
默认情况下,此模式处于启用状态。
访问函数:
| bool | autoSaveFilter() const |
| void | setAutoSaveFilter(bool save) |
collectionFile : QString
该属性存储当前使用的集合文件的绝对文件名。
设置此属性会导致帮助引擎处于无效状态。必须调用setupData() 或任何获取函数,以重新初始化帮助引擎。
访问函数:
| QString | collectionFile() const |
| void | setCollectionFile(const QString &fileName) |
[since 6.0] readOnly : bool
该属性用于指定帮助引擎是否为只读模式。
在只读模式下,用户可以使用安装在只读位置的集合文件的帮助引擎。在此情况下,部分功能将不可用,例如注册额外文档、编辑过滤器,或任何需要修改集合文件的操作。将其设置为false 可启用帮助引擎的全部功能。
默认情况下,该属性的值为true 。
该枚举值自 Qt 6.0 起引入。
访问函数:
| bool | isReadOnly() const |
| void | setReadOnly(bool enable) |
成员函数文档
[explicit] QHelpEngineCore::QHelpEngineCore(const QString &collectionFile, QObject *parent = nullptr)
使用parent 构建一个新的核心帮助引擎。该帮助引擎利用存储在collectionFile 中的信息提供帮助。如果集合文件尚不存在,则会自动创建该文件。
[virtual noexcept] QHelpEngineCore::~QHelpEngineCore()
销毁帮助引擎。
bool QHelpEngineCore::copyCollectionFile(const QString &fileName)
创建文件fileName ,并将当前集合文件中的所有内容复制到新创建的文件中;若操作成功,则返回 true;否则返回 false。
复制过程会确保对 Qt 集合文件(.qch )的文件引用得到相应更新。
QVariant QHelpEngineCore::customValue(const QString &key, const QVariant &defaultValue = {}) const
返回赋予key 的值。如果请求的键不存在,则返回指定的defaultValue 。
另请参阅 setCustomValue() 和removeCustomValue()。
QString QHelpEngineCore::documentationFileName(const QString &namespaceName)
返回由namespaceName 标识的 Qt 压缩帮助文件(.qch)的绝对文件名。如果未注册具有指定命名空间的 Qt 压缩帮助文件,则返回空字符串。
另请参阅 namespaceName()。
QList<QHelpLink> QHelpEngineCore::documentsForIdentifier(const QString &id) const
返回一个包含为id 找到的所有文档链接的列表。返回列表的内容取决于当前过滤器,因此只会返回为当前过滤器注册的关键词。
QList<QHelpLink> QHelpEngineCore::documentsForIdentifier(const QString &id, const QString &filterName) const
返回根据filterName 过滤后,针对id 找到的文档链接列表。返回列表的内容取决于传入的过滤器,因此仅会返回为此过滤器注册的关键词。若要获取所有未经过滤的结果,请将空字符串作为filterName 传入。
QList<QHelpLink> QHelpEngineCore::documentsForKeyword(const QString &keyword) const
返回一个列表,其中包含为keyword 找到的所有文档链接。返回的列表内容取决于当前过滤器,因此只会返回为当前过滤器注册的关键词。
QList<QHelpLink> QHelpEngineCore::documentsForKeyword(const QString &keyword, const QString &filterName) const
返回根据filterName 过滤后,针对keyword 找到的文档链接列表。返回列表的内容取决于传入的过滤器,因此仅会返回为此过滤器注册的关键词。若要获取所有未经过滤的结果,请将空字符串作为filterName 传入。
QString QHelpEngineCore::error() const
返回上次发生的错误的描述。
QByteArray QHelpEngineCore::fileData(const QUrl &url) const
返回由 `url` 指定的文件的数据。如果该文件不存在,则返回一个空的 `QByteArray `。
另请参阅 findFile()。
QList<QUrl> QHelpEngineCore::files(const QString namespaceName, const QString &filterName, const QString &extensionFilter = {})
返回namespaceName 中Qt压缩帮助文件所包含的文件列表。这些文件既可以通过filterName 进行筛选,也可以通过其扩展名extensionFilter (例如“html”)进行筛选。
QHelpFilterEngine *QHelpEngineCore::filterEngine() const
返回与该帮助引擎关联的过滤引擎。该过滤引擎允许对该帮助引擎的现有过滤器进行添加、修改和删除操作。要使用该引擎,还必须调用setUsesFilterEngine(),并将参数设置为true 。
QUrl QHelpEngineCore::findFile(const QUrl &url) const
返回url 的修正后URL,该URL可能指向由作为url 一部分定义的虚拟文件夹所定义的另一个命名空间。如果虚拟文件夹与url 的命名空间匹配,则该方法仅检查文件是否存在,并返回相同的url 。 当虚拟文件夹与url 的命名空间不匹配时,它会根据当前激活的过滤器尝试查找最匹配的命名空间。找到命名空间后,如果文件存在,则返回修正后的 URL;否则返回一个无效的 URL。
[static] QVariant QHelpEngineCore::metaData(const QString &documentationFileName, const QString &name)
返回 Qt 压缩帮助文件documentationFileName 的元数据。如果name 没有可用数据,则返回一个无效的 QVariant()。元数据在创建 Qt 压缩帮助文件时定义,此后无法修改。常见的元数据包括文档的作者等。
[static] QString QHelpEngineCore::namespaceName(const QString &documentationFileName)
返回由其documentationFileName 指定的Qt压缩帮助文件(.qch)所定义的命名空间名称。如果文件无效,则返回一个空字符串。
另请参阅 documentationFileName()。
bool QHelpEngineCore::registerDocumentation(const QString &documentationFileName)
注册文件documentationFileName 中包含的 Qt 压缩帮助文件(.qch)。一个由其命名空间唯一标识的压缩帮助文件只能注册一次。如果注册成功,则返回 True;否则返回 False。
另请参阅 unregisterDocumentation() 和error()。
QStringList QHelpEngineCore::registeredDocumentations() const
返回当前集合文件中所有已注册的 Qt 压缩帮助文件的列表。返回的名称即为已注册的 Qt 压缩帮助文件(.qch)的命名空间。
bool QHelpEngineCore::removeCustomValue(const QString &key)
从集合文件的设置部分中删除key 。如果值已成功删除,则返回true;否则返回false。
另请参阅 customValue() 和setCustomValue()。
bool QHelpEngineCore::setCustomValue(const QString &key, const QVariant &value)
将value 保存到key 下。如果该键已存在,其值将被覆盖。若值保存成功,则返回true;否则返回false。
另请参阅 customValue() 和removeCustomValue()。
void QHelpEngineCore::setUsesFilterEngine(bool uses)
根据传入的uses 参数,启用或禁用帮助引擎中的新过滤引擎功能。
另请参阅 usesFilterEngine() 和filterEngine()。
bool QHelpEngineCore::setupData()
通过处理集合文件中的信息来初始化帮助引擎,若成功则返回 true;否则返回 false。
调用该函数会强制帮助引擎立即进行初始化。大多数情况下,无需显式调用此函数,因为依赖于正确配置的帮助引擎的获取函数会自动完成此操作。
注意: qsqlite4.dll 需要与应用程序一同部署,因为帮助系统在加载帮助集合时会使用 sqlite 驱动程序。
[signal] void QHelpEngineCore::setupFinished()
当设置完成后,会发出此信号。
[signal] void QHelpEngineCore::setupStarted()
在开始设置时会发出此信号。
bool QHelpEngineCore::unregisterDocumentation(const QString &namespaceName)
将由其namespaceName 标识的Qt压缩帮助文件(.qch)从帮助集合中注销。成功时返回true,否则返回false。
另请参阅 registerDocumentation() 和error()。
bool QHelpEngineCore::usesFilterEngine() const
返回值表示帮助引擎是否使用了新的过滤功能。
另请参阅 setUsesFilterEngine() 和filterEngine()。
[signal] void QHelpEngineCore::warning(const QString &msg)
当发生非严重错误时,会发出此信号。警告消息将存储在msg 中。
© 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.