Zum Inhalt springen

Optionstypen

Die Klasse Option stellt Factory-Methoden zum Definieren typisierter, persistenter Optionen bereit, die UI-Steuerelemente in Tool- und Format-Plugin-Dialogen erzeugen.

Gemeinsame Parameter

Alle Options-Factorys akzeptieren diese Parameter:

ParameterTypBeschreibung
labelstrAnzeigebeschriftung (erstes Positionsargument)
defaultvariiertStandardwert
tooltipstrTooltip-Text
enabled_whencallableCallback, der bool zurückgibt — steuert die Sichtbarkeit

Option.integer()

Spinbox für Ganzzahlwerte.

count = Option.integer("Count", default=1, min=0, max=1000)
ParameterTypStandardBeschreibung
defaultint0Standardwert
minintNoneMinimalwert
maxintNoneMaximalwert

Option.real()

Double-Spinbox für Gleitkommawerte.

scale = Option.real("Scale Factor", default=1.0, min=0.001, max=1e6, decimals=4)
ParameterTypStandardBeschreibung
defaultfloat0.0Standardwert
minfloatNoneMinimalwert
maxfloatNoneMaximalwert
decimalsint2Angezeigte Dezimalstellen

Option.boolean()

Kontrollkästchen für Wahr/Falsch-Werte.

flatten = Option.boolean("Flatten hierarchy", default=False)
ParameterTypStandardBeschreibung
defaultboolFalseStandardwert

Option.string()

Einzeiliges Textfeld.

name = Option.string("Output name", default="output")
ParameterTypStandardBeschreibung
defaultstr""Standardwert

Option.choice()

Dropdown-Auswahl.

mode = Option.choice("Mode", choices=["Fast", "Precise", "Custom"], default="Fast")
ParameterTypStandardBeschreibung
choiceslist[str]erforderlichVerfügbare Optionen
defaultstrerste AuswahlStandardauswahl

Option.path()

Dateipfadauswahl mit Durchsuchen-Schaltfläche.

output = Option.path("Output file", file_filter="CSV Files (*.csv)")
ParameterTypStandardBeschreibung
defaultstr""Standardpfad
file_filterstr""Dateityp-Filterzeichenfolge

Option.color()

Farbauswahl-Schaltfläche.

fill = Option.color("Fill color", default="#FF0000")
ParameterTypStandardBeschreibung
defaultstr"#000000"Standardfarbe (Hex)

Option.cell_choice()

Dropdown, das mit allen Zellennamen aus der aktuellen Zeichnung gefüllt wird.

target = Option.cell_choice("Target cell")
ParameterTypStandardBeschreibung
defaultstr""Standard-Zellenname

Option.table()

Bearbeitbares Raster mit typisierten Spalten. Siehe auch Tutorial zur Panel-Zusammenstellung.

entries = Option.table(
"My Table",
columns=[
TableColumn(key="name", label="Name", col_type="string"),
TableColumn(key="value", label="Value", col_type="real", decimals=3),
],
)
ParameterTypStandardBeschreibung
columnslist[TableColumn]erforderlichSpaltendefinitionen
defaultlist[dict][]Standardzeilen

Der Wert ist eine list[dict], wobei jedes Dict Spaltenschlüssel auf Werte abbildet.

TableColumn

EigenschaftTypBeschreibung
keystrDict-Schlüssel für diese Spalte
labelstrSpaltenüberschrift
col_typestrstring, integer, real, choice, cell_choice
defaultAnyStandardwert für neue Zeilen
choiceslist[str]Optionen für choice-Spalten
decimalsintDezimalstellen für real-Spalten
min_valueint|floatMinimum für numerische Spalten
max_valueint|floatMaximum für numerische Spalten

Bedingte Sichtbarkeit

Verwenden Sie enabled_when, um Optionen dynamisch zu aktivieren/deaktivieren:

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",
)

Wenn mode „Simple“ ist, sind die Felder threshold und iterations ausgegraut.