Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

Visindigo::General::PlaceholderManager Class

class Visindigo::General::PlaceholderManager

PlaceManager提供一个全局的占位符解析系统,允许插件注册占位符提供者来动态生成文本内容. 详情...

头文件: #include <PlaceholderManager>
自以下版本: Visindigo 0.13.0

公开成员函数

(自 Visindigo 0.13.0 引入) ~PlaceholderManager()
(自 Visindigo 0.13.0 引入) QString parse(QString rawText)
(自 Visindigo 0.13.0 引入) void registerProvider(Visindigo::General::PlaceholderProvider *provider)
(自 Visindigo 0.13.0 引入) void registerQObject(QObject *provider)
(自 Visindigo 0.13.0 引入) QString requestPlaceholder(QString rawText)
(自 Visindigo 0.13.0 引入) void unregisterProvider(const QString &providerID)
(自 Visindigo 0.13.0 引入) void unregisterQObject(const QString &providerObjectName)

静态公开成员

(自 Visindigo 0.13.0 引入) Visindigo::General::PlaceholderManager *getInstance()

详细说明

首先要向Minecraft领域知名插件PlaceholderAPI致敬。这个类虽然在实现和原理上 与PlaceholderAPI没有半毛钱关系,但在设计理念与生态定位上几乎完全与其相同,也是此类 的主要灵感来源。

PlaceholderManager是一个单例类,提供了一个全局的占位符解析系统。 插件可以通过注册占位符提供者(PlaceholderProvider)来动态生成文本内容。 占位符的格式为$(ID::Name::Param),其中ID是占位符提供者的ID,Name是占位符的名称,Param是可选的参数。

其中,param部分支持递归占位符,即参数中也可以包含占位符,这些占位符会在解析时被递归解析。

要解析带有占位符的文本,直接使用VIPlacholder(str)宏即可,不需要单独识别字符串中带有占位符的部分。

此外,PlaceholderManager还支持注册QObject作为占位符提供者,通过$(#QObject::ObjectName::Property)的格式来访问QObject的属性。

成员函数文档

[noexcept, since Visindigo 0.13.0] PlaceholderManager::~PlaceholderManager()

析构函数

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] Visindigo::General::PlaceholderManager *PlaceholderManager::getInstance()

return PlaceholderManager的单例实例

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] QString PlaceholderManager::parse(QString rawText)

rawText 包含占位符的原始文本。

解析一个包含占位符的文本。

return 返回解析后的文本。它只是requestPlaceholder的别名。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void PlaceholderManager::registerProvider(Visindigo::General::PlaceholderProvider *provider)

provider 要注册的占位符提供者对象指针

注册一个占位符提供者

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void PlaceholderManager::registerQObject(QObject *provider)

provider QObject提供者

注册一个QObject作为占位符提供者

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] QString PlaceholderManager::requestPlaceholder(QString rawText)

rawText 包含占位符的原始文本。 请求解析一个包含占位符的文本。

return 解析后的文本。

占位符解析是懒替换的,如果没有可以解析这个占位符的Provider,则占位符将被原样保留在文本中。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void PlaceholderManager::unregisterProvider(const QString &providerID)

providerID 占位符提供者的ID

注销一个占位符提供者

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void PlaceholderManager::unregisterQObject(const QString &providerObjectName)

providerObjectName QObject提供者的对象名称

注销一个QObject占位符提供者

这个function 从 Visindigo 0.13.0 开始支持。

宏文档

VIPM

这个宏是PlaceholderManager的一个便捷接口,直接调用PlaceholderManager::getInstance()来获取单例实例。

VIPlaceholder(str)

str 包含占位符的原始文本。

这个宏是PlaceholderManager的一个便捷接口,直接调用PlaceholderManager::getInstance()->requestPlaceholder(str)来解析字符串中的占位符。