选项类型
Option 类提供用于定义带类型、持久化选项的工厂方法,这些选项会在工具和格式插件对话框中生成 UI 控件。
通用参数
所有选项工厂方法都接受以下参数:
| 参数 | 类型 | 说明 |
|---|---|---|
label | str | 显示标签(第一个位置参数) |
default | varies | 默认值 |
tooltip | str | 工具提示文本 |
enabled_when | callable | 返回 bool 的回调——控制可见性 |
Option.integer()
用于整数值的微调框。
count = Option.integer("Count", default=1, min=0, max=1000)| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default | int | 0 | 默认值 |
min | int | None | 最小值 |
max | int | None | 最大值 |
Option.real()
用于浮点值的双精度微调框。
scale = Option.real("Scale Factor", default=1.0, min=0.001, max=1e6, decimals=4)| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default | float | 0.0 | 默认值 |
min | float | None | 最小值 |
max | float | None | 最大值 |
decimals | int | 2 | 显示的小数位数 |
Option.boolean()
用于 true/false 值的复选框。
flatten = Option.boolean("Flatten hierarchy", default=False)| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default | bool | False | 默认值 |
Option.string()
单行文本字段。
name = Option.string("Output name", default="output")| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default | str | "" | 默认值 |
Option.choice()
下拉选择器。
mode = Option.choice("Mode", choices=["Fast", "Precise", "Custom"], default="Fast")| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
choices | list[str] | required | 可用选项 |
default | str | first choice | 默认选择 |
Option.path()
带浏览按钮的文件路径选择器。
output = Option.path("Output file", file_filter="CSV Files (*.csv)")| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default | str | "" | 默认路径 |
file_filter | str | "" | 文件类型过滤字符串 |
Option.color()
颜色选择按钮。
fill = Option.color("Fill color", default="#FF0000")| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default | str | "#000000" | 默认颜色(十六进制) |
Option.cell_choice()
由当前图纸中的所有单元名称填充的下拉框。
target = Option.cell_choice("Target cell")| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default | str | "" | 默认单元名称 |
Option.table()
带类型列的可编辑网格。另请参阅面板拼版教程。
entries = Option.table( "My Table", columns=[ TableColumn(key="name", label="Name", col_type="string"), TableColumn(key="value", label="Value", col_type="real", decimals=3), ],)| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
columns | list[TableColumn] | required | 列定义 |
default | list[dict] | [] | 默认行 |
该值是一个 list[dict],其中每个字典将列键映射到值。
TableColumn
| 属性 | 类型 | 说明 |
|---|---|---|
key | str | 此列的字典键 |
label | str | 列标题 |
col_type | str | string、integer、real、choice、cell_choice |
default | Any | 新行的默认值 |
choices | list[str] | choice 列的选项 |
decimals | int | real 列的小数位数 |
min_value | int|float | 数值列的最小值 |
max_value | int|float | 数值列的最大值 |
条件可见性
使用 enabled_when 动态启用/禁用选项:
class MyTool(Tool): mode = Option.choice("Mode", choices=["Simple", "Advanced"]) threshold = Option.real( "Threshold", default=0.5, enabled_when=lambda self: self.mode == "Advanced", ) iterations = Option.integer( "Iterations", default=10, enabled_when=lambda self: self.mode == "Advanced", )当 mode 为 “Simple” 时,threshold 和 iterations 字段会变灰。