Spec-Zone.ru › Tcl/Tk

itcloption

НАЗВАНИЕ
itcl::option — определение опций для extendedclass, widget или widgetadaptor
ПРЕДУПРЕЖДЕНИЕ!
СИНТАКСИС
ОПИСАНИЕ
-default defvalue
-readonly
-cgetmethod methodName
-cgetmethodvar varName
-configuremethod methodName
-configuremethodvar varName
-validatemethod methodName
-validatemethodvar varName
КЛЮЧЕВЫЕ СЛОВА

Имя

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API