过滤器参考
除了列出的内置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_prefix 和 add_namespace_prefix,并为返回空字符串的特殊处理提供 'qt' 命名空间。
begin_namespace(symbol)
返回启动新命名空间的 C++ 语句。
命名空间从符号所属模块的注释中读取。
end_namespace(symbol)
返回结束命名空间的 C++ 语句。
命名空间从符号所属模块的注释中读取。
全局函数
error(msg)
抛出带有给定 msg 的错误。
warning(msg)
报告带有给定 msg 的警告。
© 2024 Qt 公司有限公司。在此处包含的文档贡献的版权属于其各自的所有者。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相应的标志是芬兰和/或世界上其他国家的 Qt 公司有限公司的商标。所有其他商标均为其各自所有者的财产。