QHelpEngineCore Class

QHelpEngineCore 类提供帮助系统的核心功能。更多

Header: #include <QHelpEngineCore>
CMake: find_package(Qt6 REQUIRED COMPONENTS Help)
target_link_libraries(mytarget PRIVATE Qt6::Help)
qmake: QT += help
继承: QObject
继承于:

QHelpEngine

属性

公共功能

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 取代了 Qt 5.13 过时的过滤器 API。使用true 调用setUsesFilterEngine() 可启用新功能。

核心帮助引擎有两种模式:

  • 只读模式,即除非明确请求,否则不会更改帮助集合文件。如果帮助文件集位于只读位置,这种模式也会起作用,并且是默认模式。
  • 完全可写模式,要求帮助集合文件是可写的。

在调用setupData() 之前,可以通过调用setReadOnly() 方法来更改模式。

帮助引擎还能以类似于 ini 文件或 Windows 注册表项的持久方式设置和读取值。更多信息请参阅 setValue() 或 value()。

该类不提供任何 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 XML Collection 文件 (.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

返回为id 找到的文档链接列表,按filterName 进行筛选。返回的列表内容取决于传递的过滤器,因此只会返回为该过滤器注册的关键字。如果您想得到所有未经筛选的结果,请将空字符串作为filterName

QList<QHelpLink> QHelpEngineCore::documentsForKeyword(const QString &keyword) const

返回为keyword 找到的所有文档链接的列表。返回的列表内容取决于当前筛选器,因此只会返回为当前筛选器注册的关键词。

QList<QHelpLink> QHelpEngineCore::documentsForKeyword(const QString &keyword, const QString &filterName) const

返回为keyword 找到的文档链接列表,按filterName 进行筛选。返回的列表内容取决于传递的过滤器,因此只会返回为该过滤器注册的关键字。如果您想得到所有未经筛选的结果,请将空字符串作为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

Returns the corrected URL for theurl that may refer to a different namespace defined by the virtual folder defined as a part of theurl. If the virtual folder matches the namespace of theurl, the method just checks if the file exists and returns the sameurl.如果虚拟文件夹与url 的命名空间不匹配,则会尝试根据活动过滤器查找最匹配的命名空间。找到命名空间后,如果文件存在,则返回更正后的 URL,否则返回无效 URL。

[static] QVariant QHelpEngineCore::metaData(const QString &documentationFileName, const QString &name)

返回 Qt XML 压缩帮助文件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)

保存key 下的value 。如果键值已经存在,该值将被覆盖。如果值保存成功,则返回 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)

从 help 集合中取消注册由namespaceName 标识的 Qt 压缩帮助文件 (.qch) 。成功时返回 true,否则返回 false。

另请参阅 registerDocumentation() 和error()。

bool QHelpEngineCore::usesFilterEngine() const

返回帮助引擎是否使用了新的过滤器功能。

另请参阅 setUsesFilterEngine() 和filterEngine()。

[signal] void QHelpEngineCore::warning(const QString &msg)

当发生非严重错误时会发出该信号。警告信息存储在msg 中。

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