Spec-Zone.ru › Tcl/Tk

Консоль

ИМЯ
console — Управление консолью на системах без реальной консоли
СИНТАКСИС
ОПИСАНИЕ
console eval script
console hide
console show
console title ?строка?
ДОСТУП К ОСНОВНОМУ ИНТЕРПРЕТАТОРУ
consoleinterp eval script
consoleinterp record script
ДОПОЛНИТЕЛЬНЫЕ ВЫЗОВЫ ЛОВУШКИ
НЕЙТРАЛЬНЫЕ ПРИВЯЗКИ
ПРИМЕР
СМОТРИТЕ ТАКЖЕ
КЛЮЧЕВЫЕ СЛОВА

Имя

console — Управление консолью на системах без реальной консоли

Синтаксис

console подкоманда ?арг ...?

Описание

Окно консоли — это замена реальной консоли для ввода и вывода по стандартным каналам ввода-вывода на платформах, не имеющих реальной консоли. Она реализуется как отдельный интерпретатор с загруженным набором инструментов Tk, и управление этим интерпретатором осуществляется с помощью команды console. Поведение окна консоли определяется в основном содержимым файла console.tcl в библиотеке Tk. За исключением TkAqua, эта команда недоступна, когда Tk загружается в интерпретатор tclsh с помощью «package require Tk», так как в этом случае ожидается наличие обычного терминала. В TkAqua эта команда доступна только тогда, когда stdin равен /dev/null (как, например, в случае, когда приложение, встраивающее Tk, запускается из Finder Mac OS X).
console eval script
Выполняет аргумент script как Tcl-скрипт в интерпретаторе консоли. К основному интерпретатору можно получить доступ через команду consoleinterp в интерпретаторе консоли.
console hide
Скрыть окно консоли от просмотра. Точно эквивалентно выводу из окна . в интерпретаторе консоли.
console show
Отобразить окно консоли. Точно эквивалентно разблокировке окна . в интерпретаторе консоли.
console title ?строка?
Запрос или изменение заголовка окна консоли. Если строка не указана, запрашивается заголовок окна консоли, а в противном случае заголовок окна консоли устанавливается в строку. Точно эквивалентно использованию команды wm title в интерпретаторе консоли.

Доступ к основному интерпретатору

Команда consoleinterp в интерпретаторе консоли позволяет выполнять скрипты в основном интерпретаторе. Она поддерживает две подкоманды: eval и record.
consoleinterp eval script
Выполняет script как Tcl-скрипт на глобальном уровне в основном интерпретаторе.
consoleinterp record script
Записывает и выполняет script как Tcl-скрипт на глобальном уровне в основном интерпретаторе так, как будто script был введен в консоли.

Дополнительные вызовы ловушки

Есть несколько дополнительных команд в интерпретаторе консоли, которые вызываются в ответ на действия в основном интерпретаторе. Эти команды здесь документированы только для полноты; они являются частью внутренней реализации консоли и, вероятно, изменятся или будут изменены без предупреждения.

Вывод в консоль из основного интерпретатора через каналы stdout и stderr обрабатывается с помощью вызова команды tk::ConsoleOutput в интерпретаторе консоли с двумя аргументами. Первый аргумент — имя канала, в который происходит запись, а второй — строка, записываемая в канал (после кодирования и обработки перевода строки).

Когда окно . основного интерпретатора уничтожается, в интерпретаторе консоли вызывается команда tk::ConsoleExit (предполагается, что сам интерпретатор консоли еще не был удален).

Нейтральные привязки

Нейтральный скрипт создает окно консоли (реализованное с помощью текстового виджета), которое имеет следующее поведение:
  1. Нажатие клавиши Tab вставляет символ TAB (как определено Tcl-экранированием \t).
  2. Нажатие клавиши Enter приводит к тому, что текущая строка (если она завершена по правилам info complete) передается основному интерпретатору для выполнения.
  3. Нажатие клавиши Delete удаляет выделенный текст (если выделенный текст присутствует) или символ справа от курсора (если он не в конце строки).
  4. Нажатие клавиши Backspace удаляет выделенный текст (если выделенный текст присутствует) или символ слева от курсора (если он не в начале строки).
  5. Нажатие клавиш Ctrl+A или Home перемещает курсор в начало строки (но после приглашения, если в строке есть приглашение).
  6. Нажатие клавиш Ctrl+E или End перемещает курсор в конец строки.
  7. Нажатие клавиш Ctrl+P или Up выбирает предыдущую запись в истории команд.
  8. Нажатие клавиш Ctrl+N или Down выбирает следующую запись в истории команд.
  9. Нажатие клавиш Ctrl+B или Left перемещает курсор на один символ назад, если курсор не находится в позиции приглашения.
  10. Нажатие клавиш Ctrl+F или Right перемещает курсор на один символ вперед.
  11. Нажатие F9 перестраивает окно консоли, уничтожая всех его дочерних элементов и перезагружая Tcl-скрипт, определяющий поведение консоли.

Большинство других функций аналогичны обычным текстовым виджетам, за исключением того, что событие <<Вырезать>> обрабатывается так же, как и событие <<Копировать>>.

Пример

Не на всех платформах есть команда console, поэтому в отлаживаемом коде часто есть фрагмент кода со следующим фрагментом кода, чтобы вывод, произведенный с помощью puts, был виден во время разработки:
catch {console show}

См. также

destroy, fconfigure, history, interp, puts, text, wm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/console.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/console.htm

Spec-Zone.ru

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