オプション型
Option クラスは、ツールおよび形式プラグインのダイアログに UI コントロールを生成する、型付きで永続化されるオプションを定義するためのファクトリーメソッドを提供します。
共通パラメーター
すべてのオプションファクトリーは次のパラメーターを受け取ります。
| パラメーター | 型 | 説明 |
|---|---|---|
label | str | 表示ラベル(最初の位置引数) |
default | 型はさまざま | 既定値 |
tooltip | str | ツールチップのテキスト |
enabled_when | callable | self を受け取り bool を返すコールバック。False のときコントロールがグレーアウトします |
name | str | キーワード専用。生成されるオプションキーを上書きします |
Option.integer()
整数値用のスピンボックスです。
count = Option.integer("Count", default=1, min=0, max=1000)| パラメーター | 型 | 既定値 | 説明 |
|---|---|---|---|
default | int | 0 | 既定値 |
min | int | 0 | 最小値 |
max | int | 999999 | 最大値 |
Option.real()
浮動小数点値用の小数スピンボックスです。
scale = Option.real("Scale Factor", default=1.0, min=0.001, max=1e6, decimals=4)| パラメーター | 型 | 既定値 | 説明 |
|---|---|---|---|
default | float | 0.0 | 既定値 |
min | float | 0.0 | 最小値 |
max | float | 1e9 | 最大値 |
decimals | int | 2 | 表示する小数桁数 |
Option.boolean()
真偽値用のチェックボックスです。
flatten = Option.boolean("Flatten hierarchy", default=False)| パラメーター | 型 | 既定値 | 説明 |
|---|---|---|---|
default | bool | False | 既定値 |
Option.string()
1 行のテキストフィールドです。
name = Option.string("Output name", default="output")| パラメーター | 型 | 既定値 | 説明 |
|---|---|---|---|
default | str | "" | 既定値 |
Option.choice()
ドロップダウンセレクターです。
mode = Option.choice("Mode", choices=["Fast", "Precise", "Custom"], default="Fast")| パラメーター | 型 | 既定値 | 説明 |
|---|---|---|---|
choices | list[str] | 必須 | 選択肢 |
default | str | 最初の選択肢 | 既定の選択 |
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" | 既定色(16 進) |
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] | 必須 | 列の定義 |
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 フィールドはグレーアウトします。
オプションキー
各オプションは文字列キーで永続化されます。Option をクラス属性として使うと、LinkCAD はキーを PyPlugin.<クラス>.<属性> として生成します。予約されたルート PyPlugin はプラグインオプションをアプリケーション自身の設定名前空間から隔離し、クラス部分は flatten という同名のオプションを持つ 2 つのプラグインを区別します。
class AsciiWriter(FormatWriter): flatten = Option.boolean("Flatten hierarchy", default=False) # persisted as "PyPlugin.AsciiWriter.flatten"属性名はそのまま使われるため、キーとそれを読む Python 属性の綴りは一致します。すべてのオプションは、このキーでコマンドラインからも設定できます。
linkcad --PyPlugin.AsciiWriter.flatten=1 ...キーワード専用引数 name を渡せば、キーを自分で指定できます。
flatten = Option.boolean("Flatten hierarchy", default=False, name="MyFormatFlatten")オプションの値は run()、read()、write() の呼び出し前にインスタンスへ読み込まれるため、これらのメソッド内では self.flatten が現在の値になります。属性を直接設定することもでき、これによりダイアログを開かずにスクリプトエディターからプラグインを駆動できます。