Spec-Zone.ru › Tcl/Tk

itclvars

Имя

itclvars — переменные, используемые [incr Tcl]

Описание

Следующие глобальные переменные создаются и управляются автоматически библиотекой [incr Tcl]. За исключением случаев, указанных ниже, эти переменные обычно должны рассматриваться как только для чтения для кода и пользователей, относящихся к конкретному применению.
itcl::library
При создании интерпретатора [incr Tcl] инициализирует эту переменную, чтобы содержать имя каталога, содержащего системную библиотеку скриптов [incr Tcl]. Начальное значение itcl::library устанавливается из переменной окружения ITCL_LIBRARY, если она существует, или из вкомпилированного значения в противном случае.
itcl::patchLevel
При создании интерпретатора [incr Tcl] инициализирует эту переменную, чтобы содержать текущий уровень исправлений для [incr Tcl]. Например, значение «2.0p1» указывает версию [incr Tcl] 2.0 с применённым первым набором исправлений.
itcl::purist
При создании интерпретатора, содержащего Tcl/Tk и механизм именования пространства имён [incr Tcl], эта переменная управляет режимом «обратной совместимости» для доступа к виджетам.

В стандартном Tcl/Tk существует один пул команд, поэтому команда доступа к виджету такая же, как и имя окна. Однако, когда виджет создаётся в пространстве имён, его команда доступа устанавливается в этом пространстве имён и должна обращаться извне пространства имён с помощью квалифицированного имени. Например,

namespace foo {
    namespace bar {
        button .b -text "Testing"
    }
}
foo::bar::.b configure -background red
pack .b

Обратите внимание, что имя окна «.b» всё ещё используется в сочетании с командами, такими как pack и destroy. Однако команда доступа к виджету (то есть имя, которое появляется в качестве первого аргумента в строке команд) должна быть более специфичной.

Команда «winfo command» может быть использована для запроса полностью квалифицированной команды доступа к любому виджету, поэтому можно написать:

[winfo command .b] configure -background red

и это хорошая практика при написании процедур библиотеки. Также в сочетании с командой bind поле «%q» может быть использовано вместо «%W» в качестве команды доступа:

bind Button <Key-Return> {%q flash; %q invoke}

Хотя такое поведение имеет смысл с точки зрения инкапсуляции, оно создаёт проблемы для существующих приложений Tcl/Tk. Многие существующие приложения написаны с привязками, использующими «%W». Многие процедуры библиотеки предполагают, что имя окна является командой доступа.

Переменная itcl::purist управляет режимом обратной совместимости. По умолчанию эта переменная равна «0», и имя окна может использоваться как команда доступа в любом контексте. Всякий раз, когда процедура unknown сталкивается с именем виджета, она просто использует «winfo command», чтобы определить соответствующее имя команды. Если эта переменная установлена в «1», этот режим обратной совместимости отключён. Это обеспечивает лучшую инкапсуляцию, но использование имени окна в качестве команды доступа может привести к ошибкам «недействительная команда».

itcl::version
При создании интерпретатора [incr Tcl] инициализирует эту переменную, чтобы содержать номер версии в формате x.y. Изменения в x представляют собой существенные изменения с вероятными несовместимостями, а изменения в y представляют собой небольшие усовершенствования и исправления ошибок, которые сохраняют обратную совместимость.

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/ItclCmd/itclvars.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/ItclCmd/itclvars.htm

Spec-Zone.ru

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