コンテンツにスキップ

オプション型

Option クラスは、ツールおよび形式プラグインのダイアログに UI コントロールを生成する、型付きで永続化されるオプションを定義するためのファクトリーメソッドを提供します。

共通パラメーター

すべてのオプションファクトリーは次のパラメーターを受け取ります。

パラメーター説明
labelstr表示ラベル(最初の位置引数)
default型はさまざま既定値
tooltipstrツールチップのテキスト
enabled_whencallableself を受け取り bool を返すコールバック。False のときコントロールがグレーアウトします
namestrキーワード専用。生成されるオプションキーを上書きします

Option.integer()

整数値用のスピンボックスです。

count = Option.integer("Count", default=1, min=0, max=1000)
パラメーター既定値説明
defaultint0既定値
minint0最小値
maxint999999最大値

Option.real()

浮動小数点値用の小数スピンボックスです。

scale = Option.real("Scale Factor", default=1.0, min=0.001, max=1e6, decimals=4)
パラメーター既定値説明
defaultfloat0.0既定値
minfloat0.0最小値
maxfloat1e9最大値
decimalsint2表示する小数桁数

Option.boolean()

真偽値用のチェックボックスです。

flatten = Option.boolean("Flatten hierarchy", default=False)
パラメーター既定値説明
defaultboolFalse既定値

Option.string()

1 行のテキストフィールドです。

name = Option.string("Output name", default="output")
パラメーター既定値説明
defaultstr""既定値

Option.choice()

ドロップダウンセレクターです。

mode = Option.choice("Mode", choices=["Fast", "Precise", "Custom"], default="Fast")
パラメーター既定値説明
choiceslist[str]必須選択肢
defaultstr最初の選択肢既定の選択

Option.path()

参照ボタン付きのファイルパス選択です。

output = Option.path("Output file", file_filter="CSV Files (*.csv)")
パラメーター既定値説明
defaultstr""既定のパス
file_filterstr"*.*"ファイルタイプのフィルター文字列

Option.color()

カラーピッカーボタンです。

fill = Option.color("Fill color", default="#FF0000")
パラメーター既定値説明
defaultstr"#000000"既定色(16 進)

Option.cell_choice()

現在の図面のすべてのセル名を候補とするドロップダウンです。

target = Option.cell_choice("Target cell")
パラメーター既定値説明
defaultstr""既定のセル名

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),
],
)
パラメーター既定値説明
columnslist[TableColumn]必須列の定義
defaultlist[dict][]既定の行

値は list[dict] で、各辞書が列キーを値に対応付けます。

TableColumn

プロパティ説明
keystrこの列の辞書キー
labelstr列見出し
col_typestrstringintegerrealchoicecell_choice
defaultAny新しい行の既定値
choiceslist[str]choice 列の選択肢
decimalsintreal 列の小数桁数
min_valueint|float数値列の最小値
max_valueint|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” のとき、thresholditerations フィールドはグレーアウトします。

オプションキー

各オプションは文字列キーで永続化されます。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 が現在の値になります。属性を直接設定することもでき、これによりダイアログを開かずにスクリプトエディターからプラグインを駆動できます。