过滤器参考

除了列出的内置Jinja过滤器外,以下额外功能在ifcodegen中实现。

过滤器

return_type(symbol)

返回传递的符号的C++类型。

例如,对于类型 "string" 的符号,返回(QString)。

parameter_type(symbol)

返回传递的符号的C++类型。这返回与return_type()相同类型,但已准备好用作方法参数。

例如,对于类型 "string" 的符号,返回 "const QString & <name>"。

getter_name(symbol)

如果通过@getter_name注解定义了属性的getter名称,则返回属性的getter名称。否则返回传递的符号。

setter_name(symbol)

如果通过@setter_name注解定义了属性的setter名称,则返回属性的setter名称。否则返回传递的符号。

default_type_value(symbol)

返回传递的符号的默认值。模型初始化为nullptr

flag_type(symbol)

返回传递的标志的@type注解定义的名称。如果没有设置,则尝试通过在末尾添加's'来复数化传递的名称。

parse_doc(string)

解析传递的注释字符串,并将每个javadoc命令添加到其自己的组中。没有标签的句子放入'description'组。

{% with doc = comments|parse_doc -%}
{% if doc.brief %}    \brief {{doc.brief}}
{% endif %}

{% if doc.description %}
    {{doc.description}}
{% endif %}
{% endwith %}

lowerfirst(string)

仅降低给定字符串的第一个字符。

strip_QT(string)

如果字符串以 'QT' 开头,则删除它。

enum_value(value, module_name)

返回给定值的完全限定C++名称。传递的module_name用作包含枚举的C++类名称。

还支持通过 '|' 连接的值。

jsonify(obj)

返回给定obj的JSON表示。

qml_type(interface)

用于在 QML 中使用的接口/模块的名称。此名称由 @qml_type 注释定义。此注释是可选的:如果没有提供,则使用接口名称,对于模块则使用 module_name。

struct_includes(symbol)

返回接口或结构体所依赖的结构体的包含引用。返回的字符串完整,格式为 #include "struct.h"。

comment_text(comment)

返回传递的注释文本,不包括前置/后置注释标记 ('/**', '*')。

qml_info_type(symbol)

返回符号的正确类型,以便在 qmltype 模板内使用。

add_namespace_prefix(symbol, module)

将来自 namespace_prefix 的字符串追加到提供的符号。

命名空间从符号所属模块的注释中读取。如果符号是字符串,则可以提供附加的模块参数,从其中读取命名空间注释。

namespace_prefix(symbol)

从符号所属模块的注释中读取命名空间,并将其转换为可在 C++ 类名中轻松追加的 C++ 前缀。

namespace(symbol)

从符号所属模块的注释中返回命名空间。

此过滤器主要用作 namespace_prefixadd_namespace_prefix,并为返回空字符串的特殊处理提供 'qt' 命名空间。

begin_namespace(symbol)

返回启动新命名空间的 C++ 语句。

命名空间从符号所属模块的注释中读取。

end_namespace(symbol)

返回结束命名空间的 C++ 语句。

命名空间从符号所属模块的注释中读取。

全局函数

error(msg)

抛出带有给定 msg 的错误。

warning(msg)

报告带有给定 msg 的警告。

© 2024 Qt 公司有限公司。在此处包含的文档贡献的版权属于其各自的所有者。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相应的标志是芬兰和/或世界上其他国家的 Qt 公司有限公司的商标。所有其他商标均为其各自所有者的财产。