-background | -highlightbackground | -insertontime |
-selectforeground | -borderwidth | -highlightcolor |
-insertwidth | -takefocus | -cursor |
-highlightthickness | -justify | -textvariable |
-exportselection | -insertbackground | -relief |
-xscrollcommand | -font | -inserborderwidth |
-selectbackground | -foreground | -insertofftime |
-selectborderwidth |
Поле ввода представляет собой примитив, предназначенный для вывода одной строки текста и редактирования ее с помощью описываемых ниже команд примитива, которые по большей части сводятся к нажатию клавиш на клавиатуре и действиям с “Мышью”. При создании поля ввода его строка текста пуста. Часть содержимого поля можно выделить, совершив действия, описываемые ниже. Экспорт выделенного текста (см. описание параметра exportSelection) осуществляется по стандартному протоколу X11 для выделений; выделения в поле ввода имеют тип STRING. Поля ввода также подчиняются стандартным правилам Tk обращения с фокусом ввода. Когда поле ввода находится в фокусе ввода, в нем изображается курсор ввода, который указывает, где будут вставляться вводимые символы.
Поля ввода могут работать и с длинными строками, которые не помещаются полностью в окне примитива. С помощью описываемых ниже команд содержимое окна можно изменить. Поля ввода взаимодействуют с полосами прокрутки с помощью стандартного механизма xScrollCommand (подробно механизм взаимодействия описан при описании параметра xScrollCommand). Кроме того, они обеспечивают возможность сканирования (см. описание ниже).
имяПути параметр арг арг ...
Параметр и аргументы уточняют поведение команды.
Аргументами многих команд примитива поля ввода служат индексы. Индекс задает положение конкретного символа в строке поля ввода. Он может иметь один из следующих видов:
число
anchor
Указывает на символ, находящийся непосредственно за курсором ввода.
sel.first
Примитивы поля ввода допускают следующие команды:
имяПути bbox индекс
имяПути scan mark x
имяПути xview
Щелчок клавишей 1 “Мыши” устанавливает курсор ввода непосредственно перед символом, расположенным под курсором “Мыши”, устанавливает фокус ввода на данном примитиве и отменяет выделение в нем.
Перетаскивание курсора “Мыши” приводит к выделению символов между курсором ввода и конечным положением курсора “Мыши”.
Двойной щелчок клавишей 1 “Мыши” приводит к выделению слова под курсором “Мыши” и устанавливает курсор ввода перед первым символом этого слова. Перетаскивание “Мыши” после двойного щелчка приводит к выделению группы, состоящей из целых слов.
Тройной щелчок клавишей 1 “Мыши” приводит к выделению всего текста в поле ввода и устанавливает курсор ввода перед первым символом текста.
Края выделения можно выровнять, если тащить “Мышь” с нажатой клавишей 1 при нажатой клавише Shift; в этом случае выравнивается край, ближайший к положению курсора “Мыши” в момент нажатия ее клавиши 1. Если по кнопке щелкнули дважды перед тем, как тащить “Мышь”, то выделение выравнивается относительно концов полных слов.
Щелчок по клавише 1 “Мыши” при нажатой клавише Control приводит к установке курсора ввода в поле ввода без изменения текущего выделения.
Обычные печатные символы вводятся в месте расположения курсора ввода.
Содержимое поле ввода можно перемещать с помощью клавиши 2 “Мыши”. Щелчок по клавише 2 “Мыши” и без ее перемещения приводит к копированию выделения в поле ввода в место расположения курсора “Мыши”.
Если тащить “Мышь” слева или справа от окна поля ввода по направлению от окна при нажатой клавише 1, то в окне автоматически появляется невидимый ранее текст (если в поле со стороны, где “Мышь” покинула окно, есть текст, невидимый в окне).
Нажатие на клавиши Left или Right приводит к перемещению курсора ввода на один символ влево или вправо; при этом текущее выделение отменяется и устанавливается новая опорная точка выделения. Если нажатие на клавиши Left или Right происходит при нажатой клавише Shift, то курсор ввода перемещается и пройденный им символ добавляется к выделению. Нажатие на клавиши Control-Left и Control-Right приводит к перемещению курсора ввода на полное слово, сочетания Control-Shift-Left и Control-Shift-Right еще и расширяют выделение. Сочетания Control-b и Control-f играют ту же роль, что и Left и Right, а сочетания Meta-b и Meta-f соответственно ту же роль, что и Control-Shift-Left и Control-Shift-Right .
Нажатие на клавишу Home (или Control-a) приводит к перемещению курсора к началу текста с отменой существующих выделений. Shift-Home перемещает курсор к началу текста и доводит до этого места выделение.
Нажатие на клавишу End (или Control-e) приводит к перемещению курсора в конец текста с отменой существующих выделений. Shift-End перемещает курсор в конец текста и доводит до этого места выделение.
Нажатие на клавишу Select (или Control-Space) устанавливает опорную точку выделения в положение курсора ввода. Текущее выделение при этом не изменяется. Нажатие на клавиши Shift-Select (или Control-Shift-Space) доводит выделение до текущего положения курсора ввода (или устанавливает выделение между опорной точкой выделения и текущим положением курсора ввода, если текущее выделение отсутствовало).
Control-/ выделяет весь текст в окне.
Control-\ приводит к отмене текущего выделения.
Клавиша F16, на многих станциях Sun обозначенная Copy, (или Meta-w) копирует выделение в примитиве в карман.
Клавиша F20, на многих станциях Sun обозначенная Cut, (или Control-w) копирует выделение в примитиве в карман и удаляет выделение. Если выделение в примитиве отсутствует, то нажатие на эти клавиши не приводит ни к каким действиям.
Клавиша F18, на многих станциях Sun обозначенная Paste, (или Control-y) копирует содержимое кармана в место расположения курсора ввода.
Нажатие на клавишу Delete приводит к удалению выделения. Если выделение отсутствует, то удаляется символ, непосредственно примыкающий к курсору ввода справа.
Нажатие на клавишу BackSpace (или Control-h) приводит к удалению выделения. Если выделение отсутствует, то удаляется символ, непосредственно примыкающий к курсору ввода слева.
Control-d удаляет символ, непосредственно примыкающий к курсору ввода справа.
Meta-d удаляет слово, непосредственно примыкающее к курсору ввода справа.
Control-k удаляет все символы справа от курсора ввода.
Если поле ввода отключено указанием значения disabled параметра -state, то в окне поля по-прежнему можно перемещать текст и производить выделение, однако курсор ввода в окне не появляется и редактирование текста невозможно.
Определяя новые привязки к отдельным
примитивам или переопределяя привязки класса, поведение полей ввода можно
изменить .