itcloption
-
НАЗВАНИЕ
- itcl::option — определение опций для extendedclass, widget или widgetadaptor
- ПРЕДУПРЕЖДЕНИЕ!
- СИНТАКСИС
- ОПИСАНИЕ
-
-default defvalue
- -readonly
- -cgetmethod methodName
- -cgetmethodvar varName
- -configuremethod methodName
- -configuremethodvar varName
- -validatemethod methodName
- -validatemethodvar varName
- -readonly
Имя
itcl::option — определение опций для extendedclass, widget или widgetadaptorЧасти этого описания «заимствованы» из расширения Tcl [snit], поскольку функциональность в основном идентична.
Предупреждение!
Эта новая функциональность в [incr Tcl], где API всё ещё может меняться!!Синтаксис
option optionSpec ?defaultValue?option optionSpec ?options?
Описание
Команда option используется внутри определения extendedclass/widget/widgetadaptor в [incr Tcl] для определения опций.В первом виде определяет опцию для экземпляров этого типа и, необязательно, присваивает ей начальное значение. Начальное значение по умолчанию равно пустой строке, если defaultValue не указан.
Определённая таким образом опция называется локально определённой. optionSpec — это список, определяющий имя опции, имя ресурса и имя класса, например:
option {-font font Font} {Courier 12} Имя опции должно начинаться с дефиса и не должно содержать заглавных букв. Имя ресурса и имя класса являются необязательными; если они не указаны, имя ресурса по умолчанию совпадает с именем опции без дефиса, а имя класса по умолчанию совпадает с именем ресурса с заглавной первой буквой. Таким образом, следующее утверждение эквивалентно предыдущему примеру:
option -font {Courier 12} Дополнительную информацию о именах ресурсов и классов см. в разделе «База данных опций Tk».
Опции обычно устанавливаются и извлекаются с помощью стандартных методов экземпляра configure и cget; внутри кода экземпляра (тела методов и т.д.) значения опций доступны через массив options:
set myfont $itcl_options(-font)
Во втором виде вы можете определить обработчики опций (например, -configuremethod), затем, вероятно, следует использовать configure и cget для доступа к опциям, чтобы избежать скрытых ошибок.
В утверждение option могут быть включены следующие опции:
- -default defvalue
- Определяет значение по умолчанию для опции; в противном случае значением по умолчанию будет "".
- -readonly
- Опция обрабатывается только для чтения — её можно установить только с помощью configure во время создания, т.е. в конструкторе типа.
- -cgetmethod methodName
- Каждая локально определённая опция может определить -cgetmethod; он вызывается при извлечении значения опции с помощью метода cget. Всё, что возвращает тело метода, будет возвращаемым значением вызова cget.
Названный метод должен принимать один аргумент — имя опции. Например, этот код эквивалентен (хотя и медленнее) стандартной обработке cget в Itcl:
option -font -cgetmethod GetOption method GetOption {option} { return $itcl_options($option) }Обратите внимание, что любое количество опций может использовать один -cgetmethod.
- -cgetmethodvar varName
- Это очень похоже на -cgetmethod, единственное различие заключается в том, что можно определить переменную, где найти cgetmethod во время выполнения.
- -configuremethod methodName
- Каждая локально определённая опция может определить -configuremethod; он вызывается при установке значения опции с помощью методов configure или configurelist. Ответственность названного метода — сохранить значение опции; другими словами, значение не будет сохранено в массив itcl_options(), пока метод его туда не сохранит.
Названный метод должен принимать два аргумента — имя опции и её новое значение. Например, этот код эквивалентен (хотя и медленнее) стандартной обработке configure в Itcl:
option -font -configuremethod SetOption method SetOption {option value} { set itcl_options($option) $value }Обратите внимание, что любое количество опций может использовать один и тот же -configuremethod.
- -configuremethodvar varName
- Это очень похоже на -configuremethod, единственное различие заключается в том, что можно определить переменную, где найти configuremethod во время выполнения.
- -validatemethod methodName
- Каждая локально определённая опция может определить -validatemethod; он вызывается при установке значения опции с помощью методов configure или configurelist, сразу перед -configuremethod (если таковой имеется). Ответственность названного метода — валидировать новое значение опции и вызывать ошибку, если значение некорректно.
Названный метод должен принимать два аргумента — имя опции и её новое значение. Например, этот код проверяет, является ли значение -flag допустимым булевым значением:
option -font -validatemethod CheckBoolean method CheckBoolean {option value} { if {![string is boolean -strict $value]} { error "option $option must have a boolean value." } }Обратите внимание, что любое количество опций может использовать один и тот же -validatemethod.
- -validatemethodvar varName
- Это очень похоже на -validatemethod, единственное различие заключается в том, что можно определить переменную, где найти validatemethod во время выполнения.
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/ItclCmd/itcloption.htm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/ItclCmd/itcloption.htm