Visindigo::General::PlaceholderManager Class
class Visindigo::General::PlaceholderManagerPlaceManager提供一个全局的占位符解析系统,允许插件注册占位符提供者来动态生成文本内容. 详情...
| 头文件: | #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() |
宏
| VIPM | |
| VIPlaceholder(str) |
详细说明
首先要向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)来解析字符串中的占位符。