QWidget XML 语法
QWidget 是单文件 XML。根元素固定为Widget,其余元素分为布局、控件、数据/资源、触发器、函数和嵌套引用。
根元素
命名
所有元素、属性、枚举值使用大驼峰:- 元素:
Container、Text、TextBox、Widget.Using - 属性:
Value、Size、OnClick、EmptyText - 枚举:
Lg、Bold、Center、Json、Binary
通用节点属性
除Widget 根元素、Data、Resources、Function、Triggers 等非可视元素外,所有可视节点都支持:
Target 与输入控件的 Name 是两个独立命名空间:Name 仍用于 {Inputs.Name} 和 Trigger Control="Name",Target 只用于脚本操作 UI。所有属性可选值见属性值参考。示例:
When 支持 Size.Width / Size.Height / Size.PixelWidth / Size.PixelHeight,运算符 <、<=、>、>=、==、!=,可用 and / or 连接;XML 属性里的 < 需写成 <。
脚本示例见函数与 TypeScript。
三种等价写法
同一个属性支持属性语法、内容语法、属性元素语法,三者等价;同一属性被两种语法同时赋值会报错。
属性元素可继续嵌套简单的属性赋值:
附加属性
Grid 的直接子元素支持 Grid.Row、Grid.Column、Grid.RowSpan、Grid.ColumnSpan:
绑定
字符串属性都可以用{路径} 插值;整个值就是一个绑定时保留原始类型。
详见数据绑定。
元素总览
动作
按钮、链接和触发器通过OnClick / OnChange / Action 调用动作:
Launch、SetDefaultInstance、OpenInstance、Navigate、OpenUrl、OpenFolder、Copy、SelectAccount、Install、Refresh、CallFunction、RunCommand、PluginApi。
参数与示例见动作参考。
限制
- XML ≤256KB、深度 ≤16、元素 ≤1000。
- 数据源 ≤8 个;列表渲染 ≤200 项。
- 在线文本 ≤1MB、二进制 ≤8MB;本地二进制 ≤8MB。
- 嵌套深度 ≤5,单父组件 ≤20 个嵌套实例。
- 函数脚本 ≤64KB,超时默认 3 秒,最大 10 秒。
- 禁止
DOCTYPE/ENTITY;未知元素、未知属性、重复属性都会直接报错。