Spec-Zone.ru › Tcl/Tk

wish

НАЗВАНИЕ
wish — Простая оболочка с окнами
СИНТАКСИС
ПАРАМЕТРЫ
-encoding имя
-colormap новый
-display дисплей
-geometry геометрия
-name имя
-sync
-use id
-visual визуальный
--
ОПИСАНИЕ
ОБРАБОТКА ПАРАМЕТРОВ
ИМЯ И КЛАСС ПРИЛОЖЕНИЯ
ПЕРЕМЕННЫЕ
argc
argv
argv0
geometry
tcl_interactive
Файлы сценариев
ПОДСКАЗКИ
СМОТРИ ТАКЖЕ
КЛЮЧЕВЫЕ СЛОВА

Имя

wish — Простая оболочка с окнами

Синтаксис

wish ?-encoding имя? ?имяФайла аргумент аргумент ...?

Параметры

-encoding имя
Указывает кодировку текста, хранящегося в имяФайла. Этот параметр распознаётся только до аргумента имяФайла.
-colormap новый
Указывает, что окно должно иметь новую частную палитру цветов вместо использования стандартной палитры экрана.
-display дисплей
Дисплей (и экран), на котором должно отображаться окно.
-geometry геометрия
Начальная геометрия окна. Если этот параметр указан, его значение сохраняется в глобальной переменной geometry интерпретатора Tcl приложения.
-name имя
Используйте имя в качестве заголовка, отображаемого в окне, и как имя интерпретатора для команд send.
-sync
Выполнять все команды сервера X синхронно, чтобы об ошибках сообщать сразу. Это приведёт к значительно более медленной работе, но полезно для отладки.
-use id
Указывает, что главное окно приложения должно быть встроено в окно с идентификатором id вместо создания независимого окна верхнего уровня. Id должен быть указан так же, как значение параметра -use для виджетов toplevel (т.е. имеет вид, возвращаемый командой winfo id).
Обратите внимание, что на некоторых платформах это будет работать правильно только в том случае, если id относится к Tk frame или toplevel, у которых включен параметр -container.
-visual визуальный
Указывает визуальный режим для окна. Визуальный может иметь любой формат, поддерживаемый процедурой Tk_GetVisual.
--
Передавать все оставшиеся аргументы в переменную argv сценария без их интерпретации. Это предоставляет механизм для передачи аргументов, таких как -name в скрипт вместо интерпретации их wish.

Описание

Wish — это простая программа, состоящая из языка команд Tcl, инструментария Tk и главной программы, которая считывает команды со стандартного ввода или из файла. Она создаёт главное окно и затем обрабатывает команды Tcl. Если wish вызывается с аргументами, то первые несколько аргументов, ?-encoding имя? ?имяФайла?, указывают имя файла скрипта и, необязательно, кодировку текстовых данных, хранящихся в этом файле скрипта. Значение для имяФайла распознаётся, если соответствующий аргумент не начинается с «-».

Если нет аргументов или аргументы не указывают имяФайла, то wish считывает команды Tcl интерактивно со стандартного ввода. Она будет продолжать обработку команд до тех пор, пока не будут удалены все окна или пока не будет достигнут конец файла на стандартном вводе. Если существует файл «.wishrc» в домашней директории пользователя, wish оценивает файл как скрипт Tcl непосредственно перед чтением первой команды со стандартного ввода.

Если аргументы wish указывают имяФайла, то имяФайла рассматривается как имя файла скрипта. Wish выполнит скрипт в имяФайла (который, предположительно, создаёт пользовательский интерфейс), затем будет реагировать на события до тех пор, пока все окна не будут удалены. Команды не будут считываться со стандартного ввода. Автоматической оценки «.wishrc» при указании имени файла скрипта в командной строке wish нет, но файл скрипта всегда может использовать source, если это необходимо.

Обратите внимание, что в Windows программа wishверсия.exe отличается от программы tclshверсия.exe ещё и тем, что она не подключается к стандартной консоли Windows, а является оконной программой. Из-за этого она также предоставляет доступ к своей собственной команде console.

Обработка параметров

Wish автоматически обрабатывает все параметры командной строки, описанные в разделе ПАРАМЕТРЫ выше. Любые другие аргументы командной строки передаются приложению с помощью переменных argc и argv, описанных ниже.

Имя и класс приложения

Имя приложения, используемое для таких целей, как команды send, берётся из параметра -name, если он указан; иначе — из имяФайла, если он указан, или из имени команды, по которой вызван wish. В последних двух случаях, если имя содержит символ «/», то используются только символы после последнего слэша в качестве имени приложения.

Класс приложения, который используется для задания параметров с помощью свойства RESOURCE_MANAGER или файла .Xdefaults, такой же, как его имя, за исключением того, что первая буква заглавная.

Переменные

Wish устанавливает следующие переменные Tcl:
argc
Содержит количество аргументов arg (0, если нет), не считая параметров, описанных выше.
argv
Содержит список Tcl, элементы которого — аргументы arg, следующие за параметром -- или не соответствующие ни одному из параметров, описанных в ПАРАМЕТРЫ выше, в порядке следования, или пустая строка, если таких аргументов нет.
argv0
Содержит имяФайла, если оно было указано. В противном случае — имя, по которому был вызван wish.
geometry
Если указан параметр -geometry, wish копирует его значение в эту переменную. Если переменная всё ещё существует после обработки имяФайла, wish использует значение переменной в команде wm geometry для задания геометрии главного окна.
tcl_interactive
Содержит 1, если wish считывает команды интерактивно (имяФайла не было указано и стандартный ввод является терминальным устройством), 0 в противном случае.

Файлы сценариев

Если вы создаёте сценарий Tcl в файле, первая строка которого
#!/usr/local/bin/wish
, то вы можете вызвать файл сценария непосредственно из вашей оболочки, если отметьте его как исполняемый. Это предполагает, что wish установлен по умолчанию в /usr/local/bin; если он установлен в другом месте, вам придётся изменить вышеуказанную строку, чтобы она соответствовала этому. Многие UNIX-системы не позволяют строке #! превышать примерно 30 символов, поэтому убедитесь, что исполняемый файл wish может быть вызван с коротким именем файла.

Ещё лучший подход — начать ваши файлы сценариев со следующих трёх строк:

#!/bin/sh
# the next line restarts using wish \
exec wish "$0" ${1+"$@"}
Этот подход имеет три преимущества по сравнению с подходом в предыдущем абзаце. Во-первых, расположение двоичного файла wish не нужно жёстко задавать в скрипте: он может быть где угодно в вашем пути поиска оболочки. Во-вторых, он обходит ограничение длины имени файла в 30 символов в предыдущем подходе. В-третьих, этот подход будет работать даже если wish сам является скриптом оболочки (это делается на некоторых системах для обработки нескольких архитектур или операционных систем: скрипт wish выбирает один из нескольких двоичных файлов для запуска). Три строки обрабатываются как sh, так и wish, но оператор exec выполняется только sh. sh обрабатывает скрипт в первую очередь; он рассматривает вторую строку как комментарий и выполняет третью строку. Оператор exec заставляет оболочку прекратить обработку и вместо этого запустить wish для повторной обработки всего скрипта. Когда wish запускается, он обрабатывает все три строки как комментарии, так как обратный слэш в конце второй строки заставляет третью строку рассматриваться как часть комментария ко второй строке.

Конец файла сценария может быть отмечен либо физическим концом носителя, либо символом «\032» («\u001a», Control-Z). Если этот символ присутствует в файле, приложение wish будет читать текст до, но не включая, этот символ. Приложение, которому требуется этот символ в файле, может закодировать его как «\032», «\x1a» или «\u001a»; или может сгенерировать его с помощью команд, таких как format или binary.

Подсказки

Когда wish вызывается интерактивно, он обычно предлагает ввод для каждой команды с помощью «% ». Вы можете изменить подсказку, изменив переменные tcl_prompt1 и tcl_prompt2. Если переменная tcl_prompt1 существует, она должна содержать скрипт Tcl для вывода подсказки; вместо вывода подсказки, wish выполнит скрипт в tcl_prompt1. Переменная tcl_prompt2 используется аналогичным образом, когда нажата клавиша Enter, но текущая команда ещё не завершена; если переменная tcl_prompt2 не установлена, то для незавершенных команд подсказка не выводится.

См. также

tclsh, главное окно, Tk_Main, Tk_MainLoop, Tk_MainWindow

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/UserCmd/wish.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/UserCmd/wish.htm

Spec-Zone.ru

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