Детальное описание стандартных опций
(см. "Опции).СПЕЦИАЛЬНЫЕ
ОПЦИИ КОМАНДЫИмя опции в Командной строке:
-autoclear Имя опции в Базе данных Х ресурсов:
autoClear Имя Класса в Базе данных Х ресурсов:
AutoClear
Булева величина, которая определяет, будет
ли по первому нажатию на клавишу удаляться из ячейки тот текст, который
был прежде там. Значение по умолчанию - 0.
Имя опции в Командной строке:-bordercursor Имя опции в Базе данных Х ресурсов:
borderCursor Имя Класса в Базе данных Х ресурсов:
Cursor
Определяет имя курсора, который
появляется на границе поля и показывает, что размеры поля могут быть изменены
интерактивно (определяется значением опции -resizeborders). По умолчанию
- crosshair (перекрестье).
Имя опции в Командной строке:-browsecommand
или -browsecmd Имя опции в Базе данных Х ресурсов:
browseCommand Имя Класса в Базе данных Х ресурсов:
BrowseCommand
Определяет команду, которая выполняется
каждый раз, когда изменяется активная ячейка. В команде могут использоваться
%-подстановки, описанные ниже в разделе Командные
подстановки.
Имя опции в Командной строке:-cache Имя опции в Базе данных Х ресурсов:
cache Имя Класса в Базе данных Х ресурсов:
Cache
Булева величина, которая определяет,
будет ли использоваться внутренний кеш таблицы. Его использование позволяет
существенно повысить производительность при использовании опции -command,
но требует дополнительной памяти. Может улучшить производительность и тогда,
когда опции -command и -variable не заданы. Кеш автоматически
сбрасывается всякий раз при изменении опций -cache и -variable,
в противном случае Вы должны сами сделать это. Значение по умолчанию -
ложь.
Имя опции в Командной строке:-colorigin Имя опции в Базе данных Х ресурсов:
colOrigin Имя Класса в Базе данных Х ресурсов:
Origin
Определяет, какой индекс столбца является
самым левым столбцом в таблице. Эта величина используется для пользовательских
индексов в таблице. Значение по умолчанию - '0'.
Имя опции в Командной строке:-cols Имя опции в Базе данных Х ресурсов:
cols Имя Класса в Базе данных Х ресурсов:
Cols
Число столбцов в таблице. Значение
по умолчанию - '10'.
Имя опции в Командной строке:-colseparator Имя опции в Базе данных Х ресурсов:
colSeparator Имя Класса в Базе данных Х ресурсов:
Separator
Определяет символ, который будет
использоваться как разделитель столбцов при выборе данных из таблицы или
при вставке данных в таблицу. По умолчанию, столбцы разделяются как элементы
tcl-списка.
Имя опции в Командной строке:-colstretchmode Имя опции в Базе данных Х ресурсов:
colStretchMode Имя Класса в Базе данных Х ресурсов:
StretchMode
Определяет один из следующих способов
расширения столбцов для заполнения дополнительного пространства окна:
none
Столбцы не расширяются и не заполняют
все отведенное пространство окна таблицы. Если столбцы слишком узки, то
в таблице справа будет пробел. Это - значение по умолчанию.unsetРасширяются только те столбцы, которые
не имеют явно заданной ширины.allВсе столбцы расширяются на одно и
то же количество пикселей, чтобы заполнить все пространство окна. В этом
режиме могут возникнуть трудности при ручном изменении размеров ширины
ячейки.fill (используется только при значении
опции
-rowstretch, равном currently)
В таблице получится больше или меньше
столбцов в соответствии с величиной отведенного пространства. Этот способ
имеет многочисленные причуды и может исчезнуть в будущем.lastПоследний столбец расширяется так,
чтобы заполнить все пространство окна таблицы.
Имя опции в Командной строке:-coltagcommand Имя опции в Базе данных Х ресурсов:
colTagCommand Имя Класса в Базе данных Х ресурсов:
TagCommand
Задает имя процедуры, которая выполняется,
чтобы определить тэг, который используется для данного столбца. Чтобы определить,
как отображать ячейку, сначала проверяется, не задан ли тэг для столбца
с помощью команды tag col. Если тэг для столбца не задан, выполняется
процедура, определенная с помощью настоящей опции. Процедура получает номер
столбца в качестве единственного аргумента. Процедура должна возвратить
имя тэга или пустую строку. Если при выполнении процедуры происходит ошибка
или процедура возвращает недопустимое имя тэга, сообщения об ошибке не
выдается.
Имя опции в Командной строке:-colwidth Имя опции в Базе данных Х ресурсов:
colWidth Имя Класса в Базе данных Х ресурсов:
ColWidth
Задает ширину столбца по умолчанию. Ширина
столбца определяется в символах шрифта (используемого по умолчанию), если
она является положительным числом, или в пикселях, если она является отрицательным
числом. Значение по умолчанию - `10'.
Имя опции в Командной строке:-command Имя опции в Базе данных Х ресурсов:
command Имя Класса в Базе данных Х ресурсов:
Command
Определяет команду, которая используется
в качестве процедурного интерфейса к содержимому ячеек. Если опция -usecommand
имеет значение истина, эта команда будет использоваться вместо любой
ссылки на массив - variable. При выборе значения из таблицы вместо
содержимого ячейки возвращается результат выполнения команды. Использует
%-подстановки, описанные ниже в разделе
Командные подстановки.
Имя опции в Командной строке:-drawmode Имя опции в Базе данных Х ресурсов:
drawMode Имя Класса в Базе данных Х ресурсов:
DrawMode
Устанавливает один из следующих
режимов рисования таблицы:
slow
Таблица предварительно формируется
в памяти (offscreen pixmap) с использованием двойной буферизации. Для границ
используются Tk-функции. Этот способ исключает мигание, но оказывается
медленным для больших таблиц.compatibleТаблица изображается непосредственно
на экране с использованием Tk-функций для границ. Это более быстрый способ,
но экран может мигать При изменениях. Это - значение по умолчанию.fastТаблица изображается непосредственно
на экране, причем границы рисуются с использованием быстрых X-вызывов,
то есть шириной в один пиксель. Как побочный эффект, сужается область значений
допустимых значений опции -borderwidth до `0'
и `1'. Этот способ
обеспечивает наилучшую производительность для больших таблиц, но при этом
возможно мигание. Кроме того, этот способ допустим не при всех возможных
в Tk значениях ширины границы.singleТаблица рисуется на экране как в
режиме fast, но линии изображаются только одним пикселем.
Имя опции в Командной строке: -flashmode Имя опции в Базе данных Х ресурсов:
flashMode мя Класса в Базе данных Х ресурсов:
FlashMode
Булево значение, которое определяет, будут
ли ячейки мигать, когда их величина изменяется. Тэг flash назначается
этим ячейкам на время, определенное с помощью опции -flashtime.
По умолчанию устанавливается на 0.
Имя опции в Командной строке:-flashtime Имя опции в Базе данных Х ресурсов:
flashTime Имя Класса в Базе данных Х ресурсов:
FlashTime
Время в четвертях секунды, в течение
которого ячейка высвечивается при изменении величины. Опция -flashmode
должно иметь значение on. Значение по умолчанию - 2.
Имя опции в Командной строке:-height Имя опции в Базе данных Х ресурсов:
height Имя Класса в Базе данных Х ресурсов:
Height
Определяет желаемую высоту для
окна в рядах ячеек. Если задано нуль или менее, высота окна выбирается
достаточно большой, чтобы содержать все ряды таблицы. Высота может ограничиваться
с помощью опции -maxheight.
Имя опции в Командной строке:-invertselected Имя опции в Базе данных Х ресурсов:
invertSelected Имя Класса в Базе данных Х ресурсов:
InvertSelected
Определяет, будут ли цвета переднего
и заднего планов ячейки заменены друг на друга вместо использования опций
тэга sel, когда ячейка выбрана. По умолчанию устанавливается на
0 (использование опций тэга sel).
Имя опции в Командной строке:-maxheight Имя опции в Базе данных Х ресурсов:
maxHeight Имя Класса в Базе данных Х ресурсов:
MaxHeight
Максимально возможная высота окна в пикселях.
Значение по умолчанию - 600.
Имя опции в Командной строке:-maxwidth Имя опции в Базе данных Х ресурсов:
maxWidth Имя Класса в Базе данных Х ресурсов:
MaxWidth
Максимально возможная ширина окна в пикселях.
Значение по умолчанию - 800.
Имя опции в Командной строке:-multiline Имя опции в Базе данных Х ресурсов:
multiline Имя Класса в Базе данных Х ресурсов:
Multiline
Определяет значение по умолчанию для опции
тэгов -multiline. Значение по умолчанию - `1'.
Имя опции в Командной строке:-resizeborders Имя опции в Базе данных Х ресурсов:
resizeBorders Имя Класса в Базе данных Х ресурсов:
ResizeBorders
Определяет возможность интерактивного
изменения размеров ячеек. Допустимые значения опции - row,
col,
both (по умолчанию) и none. Имя опции в Командной строке:-rowheight Имя опции в Базе данных Х ресурсов:
rowHeight Имя Класса в Базе данных Х ресурсов:
RowHeight
Высота колонки по умолчанию. Задается
в числе строк текста (шрифта, устанавливаемого по умолчанию), когда число
является положительными, или в пикселях, если оно - отрицательное. Значение
по умолчанию - `1'.
Имя опции в Командной строке:-roworigin Имя опции в Базе данных Х ресурсов:
rowOrigin Имя Класса в Базе данных Х ресурсов:
Origin
Определяет, какую строку считать самой
верхней строкой таблицы. Эта величина используется для индексов пользователя
в таблице. По умолчанию устанавливается на "0".
Имя опции в Командной строке:-rows Имя опции в Базе данных Х ресурсов:
rows Имя Класса в Базе данных Х ресурсов:
Rows
Количество строк в таблице. Значение по
умолчанию -
`10'.
Имя опции в Командной строке:-rowseparator Имя опции в Базе данных Х ресурсов:
rowSeparator Имя Класса в Базе данных Х ресурсов:
Separator
Определяет символ, который будет проинтерпретирован
как разделитель строк при вставке или удалении данных из таблицы. По умолчанию,
строки разделяются как списки tcl.
Имя опции в Командной строке:-rowstretchmode Имя опции в Базе данных Х ресурсов:
rowStretchMode Имя Класса в Базе данных Х ресурсов:
StretchMode
Определяет способ расширения строк для
заполнения дополнительного пространства окна. Допустимые значения опции
такие же, как для опции -colstretchmode. Имя опции в Командной строке:-rowtagcommand Имя опции в Базе данных Х ресурсов:
rowTagCommand Имя Класса в Базе данных Х ресурсов:
TagCommand
Задает имя процедуры, которая выполняется,
чтобы определить тэг, который используется для данной строки. Процедура
определяется пользователем. Она получает номер строки в качестве единственного
аргумента. Процедура должна возвратить имя тэга или пустую строку. Опция
аналогична опции -coltagcommand и отличается только тем, что задает тэг
строки.
Имя опции в Командной строке:-selectioncommand
or
-selcmd Имя опции в Базе данных Х ресурсов:
selectionCommand Имя Класса в Базе данных Х ресурсов:
SelectionCommand
Определяет команду, которая выполняется
при получении значений ячеек через механизм выбора (например, при выполнении
команды "selection get"). Результат выполнения команды возвращается
как результат выбора. В команде могут использоваться %-подстановки, описанные
ниже в разделе Командные подстановки.
Если при выполнении команды происходит ошибка, она обрабатывается как ошибка
фонового Tcl процесса и команда ничего не возвращает.
Имя опции в Командной строке:-selectmode Имя опции в Базе данных Х ресурсов:
selectMode Имя Класса в Базе данных Х ресурсов:
SelectMode
Определяет один из возможных режимов выбора
ячеек. Величина опции может быть произвольной, но встроенная обработка
имеется только для следующих режимов: single, browse,
multiple и extended; значение по умолчанию
browse.
Эти режимы аналогичны соответствующим режимам для Tk listbox, за исключением
того, что они применяются для двумерных таблиц.
Имя опции в Командной строке:-selecttitle Имя опции в Базе данных Х ресурсов:
selectTitles Имя Класса в Базе данных Х ресурсов:
SelectTitles
Определяет, допускается ли выбор ячеек
заголовков. По умолчанию устанавливается на '0' (выбор не допускается).
Имя опции в Командной строке:-selecttype Имя опции в Базе данных Х ресурсов:
selectType Имя Класса в Базе данных Х ресурсов:
SelectType
Определяет один из различных типов выбора
для таблицы. Опция может принимать одно из значений: row,
col,
cell,
или both (означает
row && col); значение по умолчанию
cell.
Определяет, будет ли изменение выбора для ячейки (установление или снятие)
воздействовать на весь ряд и(или) колонку.
Имя опции в Командной строке:-state Имя опции в Базе данных Х ресурсов:
state Имя Класса в Базе данных Х ресурсов:
State
Определяет одно из двух состояний таблицы:
нормальное или неактивное. Если таблица не активна, то величины в ячейках
не могут быть изменены с использованием команд таблицы и никакой курсор
вставки не отображается, даже если фокус установлен в таблице. По умолчанию
устанавливается нормальное состояние.
Имя опции в Командной строке:-titlecols Имя опции в Базе данных Х ресурсов:
titleCols Имя Класса в Базе данных Х ресурсов:
TitleCols
Количество столбцов, используемое для
заголовков. По умолчанию устанавливается на '0'.
Имя опции в Командной строке:-titlerows Имя опции в Базе данных Х ресурсов:
titleRows Имя Класса в Базе данных Х ресурсов:
TitleRows
Количество строк, используемое для заголовков.
По умолчанию устанавливается на 0.
Имя опции в Командной строке:-usecommand Имя опции в Базе данных Х ресурсов:
useCommand Имя Класса в Базе данных Х ресурсов:
UseCommand
Булева величина, которое определяет, будет
ли использоваться команда, заданная с помощью опции -command. Эта
величина переустанавливается в нуль, если команда используется и возвращает
ошибку. Значение по умолчанию - `1'
(команда будет использоваться, если она задана).
Имя опции в Командной строке:-validate Имя опции в Базе данных Х ресурсов:
validate Имя Класса в Базе данных Х ресурсов:
Validate
Булева величина, определяющая, будет ли
производиться проверка корректности значения активной ячейки. По умолчанию
устанавливается на "0".
Имя опции в Командной строке:-validatecommand
или
-vcmd Имя опции в Базе данных Х ресурсов:
validateCommand Имя Класса в Базе данных Х ресурсов:
ValidateCommand
Определяет команду, которая выполняется
для проверки корректности нового значения при редактировании активной ячейки.
Эта команда должна возвращать булеву величину. Если она возвращает true,
то считается, что новое значение ячейки корректно. В противном случае считается,
что введенное значение некорректно и изменения величины в ячейке не произойдет.
Если при выполнении этой команды возникает ошибка, она обрабатывается как
ошибка фонового Tcl процесса. В команде могут использоваться %-подстановки,
описанные ниже в разделе Командные
подстановки. Имя опции в Командной строке:-variable Имя опции в Базе данных Х ресурсов:
variable Имя Класса в Базе данных Х ресурсов:
Variable
Задает имя Tcl переменной (глобального
массива), для работы с С массивом, связанным с данной таблицей. Массив
будет создан, если он не существует или если это простая переменная. Индексы
элементов массива имеют вид row,col для соответствующих ячеек. В массиве
содержится также элемент active, который содержит величину буфера активной
ячейки. Tcl массив может быть разреженным массивом (не требуется, чтобы
в нем содержались элементы для всех ячеек таблицы). Более того, никакой
элемент массива не содержит пустой величины, и при очистке ячейки соответствующий
элемент удаляется из Tcl массива.
Имя опции в Командной строке:-width Имя опции в Базе данных Х ресурсов:
width Имя Класса в Базе данных Х ресурсов:
Width
Определяет желаемую ширину для окна в
столбцах ячеек. Если она задана равной нулю или отрицательной, то ширина
для окна выбирается достаточно большой, чтобы содержать все столбцы в таблице.
Определенная таким образом величина будет ограничена значением опции -maxwidth,
если она задана.
Имя опции в Командной строке:-wrap Имя опции в Базе данных Х ресурсов:
wrap Имя Класса в Базе данных Х ресурсов:
Wrap
Разрешает для тэга перенос текста в ячейках
на следующую строку. Значение по умолчанию - '0'.ОПИСАНИЕ
КОМАНДЫКоманда table создает таблицу
- 2-мерную сетку ячеек. Таблица может использовать переменную Tcl массива
или Tcl команду для сохранения и выбора данных. Таблица имеет активную
ячейку, содержимое которой может быть отредактировано (если таблица находится
в нормальном состоянии). Таблица поддерживает общий стиль для ячеек, а
также многочисленные тэги, которые могут использоваться, чтобы изменить
стиль колонки, столбца или конкретной ячейки (см. "Теги").
Для ячеек можно установить поведение, при котором измененные ячейки меняют
цвет на определенное время ("мигают"). Ячейки могут содержать не только
текст, но и графические изображения или встроенные окна, как указано во
фрагментахТеги и "Встроенные
окна" соответственно.
Одна или более ячеек могут быть выбраны,
как указано ниже. Если таблица экспортирует свой выбор (смотри опцию -exportselection),
то соблюдаются стандартные протоколы X11 для обработки выбора. (См. "Выбор").
Не обязательно, чтобы все ячейки таблицы
были видны сразу в табличном окне; описанные ниже команды могут использоваться
для просмотра ячеек. Таблицы допускают "прокрутку" в обоих направлениях,
используя стандартные опции -xscrollcommand и -yscrollcommand.
Они также поддерживают просмотр ячеек, как указано ниже.
Чтобы обеспечить достаточную производительность,
для таблиц можно выбирать один из трех методов прорисовки, два из которых
являются полностью Tk-совместимыми.
ИНИЦИАЛИЗАЦИЯКогда команда table загружается
в интерпретатор, выполняется встроенная Tcl команда tkTableInit. Она ищет
и исполняет файл с описанием стандартного поведения таблиц. Файл ищется
в каталогах $tcl_pkgPath (как для конкретной, так и для произвольной
версии Tktable), $tk_library и [pwd] (текущий каталог). Вы
можете также определить $env(TK_TABLE_LIBRARY), который будет поставлен
в начало этого списка. По умолчанию, ищется файл tkTable.tcl, но имя файла
может быть изменено с помощью переменной $env(TK_TABLE_LIBRARY_FILE).
Этот скрипт может быть заменен на ваш
собственный, если вы создадите собственную процедуру tkTableInit прежде,
чем библиотека будет загружена. В противном случае, вышеупомянутая переменная
env(TK_TABLE_LIBRARY)
будет содержать имя каталога, в котором был найден файл $env(TK_TABLE_LIBRARY_FILE).
ИНДЕКСЫМногие команды для таблиц используют один или более
индексов как аргументы. Индекс определяет конкретную ячейку таблицы одним
из следующих способов:
число,число
Определяет ячейку, соответствующую элементу row,col
связанного
Tcl массива, где -roworigin,-colorigin
соответствует первой ячейке в таблице (0,0 по умолчанию).activeУказывает активную ячейку, (ячейку,
которая содержит курсор). Активная ячейка может задаваться командой activate.anchorУказывает якорную точку для выбора,
которая устанавливается с помощью команды selection anchor.bottomrightУказывает самую нижнюю - самую правую
ячейку, видимую в таблице.endУказывает самую нижнюю - самую правую
ячейку в таблице.originУказывает самую верхнюю - самую левую
редактируемую ячейку таблицы, не обязательно видимую на экране.topleftУказывает самую верхнюю - самую левую
редактируемую ячейку, видимую в таблице.@x,yУказывает ячейку, которая покрывает
в табличном окне точку с координатами x и y (в пикселях). Если никакая
ячейка не покрывает эту точку, используется ближайшая к этой точке ячейка.
В описаниях команд таблиц, приведенных
ниже, аргументы, называющиеся index, first или last
всегда обозначают индексы в одной из вышеуказанных форм.ТЕГИТэг является текстовой строкой, которая
связывается с нулем или больше колонок, столбцов или ячеек в таблице. Тэги
могут содержать произвольные символы, но желательно избегать использования
для тегов имен, похожих на индексы. С колонками, столбцами или ячейками
таблицы может быть связано любое количество тэгов. В каждой таблице есть
несколько постоянных тэгов, которые могут конфигурироваться пользователем
и определят атрибуты для специальных ячеек:
active
Это тэг активной ячейки.flashЕсли режим высвечивания включен,
этот тэг дается всем недавно отредактированным ячейкам.selЭтот тэг дается всем выбранным ячейкам.titleЭтот тэг дается всем ячейкам, используемым
для заголовков колонок и строк. Для этого тэга по умолчанию определено
состояние "неактивно".
Тэги определяют, как соответствующие ячейки
отображаются на экране. По умолчанию, ячейки отображаются, как определено
опциями -background, -font, и -foreground
для таблицы. Тем не менее, для каждого тэга могут быть заданы индивидуальные
значения этих опций с помощью команды
pathNametag configure
Если для ячейки задан тэг, опции тэга
переопределяют стиль таблицы. В настоящее времени для тэгов поддерживаются
следующие опции:
-anchor anchor
якорь для текста или другого объекта
в пространстве ячейки;-background или -bg colorцвет Фона ячейки;-font fontNameшрифт для текста в ячейке;-foeground или -fg colorцвет переднего плана ячейки;-justify justifyвыключка текста в ячейке. Возможные
значения left,
right,
center;-image imageNameграфический объект, который будет
отображен в ячейке вместо текста;-multiline booleanотобразить текст с символами "конец
строки" в виде нескольких строк;-relief reliefрельеф для ячейки;-showtext booleanпоказывать текст поверх графического
объекта;-state stateсостояние ячейки, позволяет определенным
ячейкам быть неактивными. Это предохраняет ячейку от редактирования с помощью
вставки или удаления, но остается возможным прямое занесение информации
в массив, результаты которого отображаются в таблице;-wrap booleanразрешает переносить символы в следующую
строку, если ячейка недостаточно широкая.
Для тэгов определен порядок приоритета.
Он используется при выполнении некоторых описанных ниже функций, связанных
с тэгами. Когда ячейка отображается, ее свойства определяются тэгами, которые
ей присвоены. Этот порядок, включая специальные тэги, - flash,
active, sel, title, celltag, rowtag, coltag, default.
Если с ячейкой связано несколько различных
тэгов и если их опции противоречат между собой, используются опции самого
приоритетного тэга. Если конкретная опция не определена для конкретного
тэга или если она определена как пустая строка, эта опция никогда не будет
использована. Будет использовано значение опции от следующего по приоритету
тэга. Если ни для одного тэга опция не определена, будет использован стиль,
заданный по умолчанию для виджета.
Графические объекты используются только
для показа. Редактирование текста в таких ячейках остается возможным, и
любой запрос покажет текст, хранящийся в ячейке, независимо от значения
опции -showtext.
ВСТРОЕННЫЕ
ОКНАВ таблице может быть произвольное
количество встроенных окон (по одному на ячейку), и любой виджет (подчиняющийся
обычным правилам, по которым встроенное окно должно быть потомком табличного
окна или его родителя) может быть использован в качестве встроенного окна.
Позиция встроенного окна на экране будет скорректирована, как только будет
изменена или передвинута таблица, и оно будет отображено на экране или
спрятано в зависимости от того, находится ли соответствующая ячейка в видимой
области таблицы. Каждое встроенное окно занимает одну ячейку таблицы, и
на него можно сослаться по индексу ячейки. Встроенные окна уничтожаются,
когда уничтожается содержащая их таблица.
Окна используются только для показа.
Текстовое значение для ячеек, занятых окнами, существует, но оно не отображается,
пока окно не удаляется некоторым способом.
Когда встроенное окно вставлено в таблицу
с помощью команды window configure, с ним связывается несколько опций,
которые могут быть изменены с помощью последующих вызовов команды window
configure. В настоящее время поддерживаются следующие опции:
-create script
В НАСТОЯЩЕЕ ВРЕМЯ НЕ ПОДДЕРЖИВАЕТСЯ.
Определяет Tcl скрипт, который может выполняться для создания заявленного
окна. Если для окна, встроенного в ячейку, опция -window не задана, при
необходимости отобразить ячейку на экране будет выполнен скрипт. Скрипт
должен создать окно и вернуть его имя как результат выполнения скрипта.
Если впоследствии окно будет удалено, перед повторным появлением ячейки
на экране скрипт будет выполнен опять.-background или -bg colorЦвет Фона окна. Если опция не определена,
то используется цвет фона таблицы.-padx pixelsКак определено в руководстве по Tk.-pady pixelsКак определено в руководстве по Tk.-relief reliefРельеф, используемый для ячейки,
в которой лежит окно. Если опция не определена, используется значение для
таблицы.-sticky sticky"Клейкость" окна в ячейке, как определено
для команды
grid.-window pathNameОпределяет имя окна, которое будет
отображено в ячейке. Окно должно существовать прежде, чем может быть использовано
здесь.ВЫБОРТабличные выборы представляют собой
данные типа СТРОКА. По умолчанию, величина выбора состоит из величин (значений)
выбранных ячеек в форме Tcl списка, где каждый ряд является списком и каждый
столбец является элементом списка ряда. Вы можете изменить способ, которым
интерпретируется эта величина, с помощью опций -rowseparator и colseparator.
Например, формат Эксела устанавливается с помощью значений
-rowseparator "\n" и -colseparator
"\t".
Изменение этих опций влияет как на формирование выбора для таблицы,
так и на чтение данных при вставке, гарантируя, что в таблице можно вырезать
данные и вставить их в нее же. Можно
изменять поведение таблицы при вставке данных с помощью редактирования
библиотечной процедуры tk_tablePasteHandler. Это может потребоваться,
если установлена опция -selectioncommand.КОМАНДНЫЕ
ПОДСТАНОВКИКоманды, задающиеся с помощью различных опций таблиц,
могут использовать традиционные для Tk %-ные подстановки (см. bind).
Следующие %-ные подстановки выполняются при работе с таблицами:
%c
Для SelectionCommand это - максимальное
количество столбцов в ряду в выбранной области.
Для остальных команд - индекс столбца
ячейки, вызвавшей событие.
%c
Удобная замена для %r,%c.%iДля SelectionCommand это - общее
число ячеек в выбранной области.
Для Command это - `0'
для чтения (get) и `1'
для записи (set).
Для остальных команд - текущая позиция
курсора в ячейке.
%R
Для SelectionCommand это - количество
рядов в выбранной области.
Для остальных команд - ряд ячейки, породившей
событие.
%S
Для ValidateCommand это - текущее
значение в ячейке, которое будет проверяться.
Для SelectionCommand это - значение по
умолчанию для выбора.
Для BrowseCommand это - индекс последней
активной ячейки.
Для Command это - пустое значение для
чтения (get) и текущая значение в ячейке для записи (set).
%S
Для ValidateCommand это - потенциальное
новое значение в ячейке, значение в которой проверяется.
Для BrowseCommand это - индекс новой активной
ячейки.
%W
Имя окна, вызвавшего событие.КОМАНДЫ
ВИДЖЕТАКоманда table создает новую команду
Tcl, чье имя является именем созданного виджета. Эта команда может использоваться,
чтобы выполнить различные действия с виджетом. У нее есть следующая общая
форма:
pathNameoption ?arg
arg ...?
где pathName - имя виджета.
Значение опции и аргументов определяют
точное назначение команды.
Для таблиц определены следующие опции
команды:
pathName activate
index
Активизирует ячейку, заданную индексом.pathName bbox first
?last?
Возвращает параметры области, объемлющей
заданную ячейку (группу ячеек) в виде списка из четырех элементов: координат
x и y левого верхнего угла области, ее ширины и высоты в пикселях. Область
объемлет только те из указанных ячеек, которые видны на экране. Если таких
ячеек нет, возвращается пустая строка.pathName border optionargsЭта команда является волшебным средством,
для переноса границ ячеек при изменении их размеров. Обычно она вызывается
через события с одной из следующих подопций:pathName border mark x
y ?row|col?Запоминает координаты x и y и границу
строки и/или столбца под этой точкой в таблице, если точка лежит на границе.
Используется в связке с последующей командой border dragto. Чаще
всего эта команда вызывается по нажатию кнопки "Мыши" на таблице. Если
аргумент row или col не задан, команда возвращает кортеж
из обоих индексов границы (пустой кортеж означает, что точка не принадлежит
границе). В противном случае возвращается индекс заданной границы (строки
или столбца соответственно).pathName border dragto x
y
Эта команда вычисляет разность между
своими x
и
y аргументами и y и x аргументами
последней команды
border mark для
таблицы. Затем она изменяет положение границы на вычисленную разность.
Эта команда обычно вызывается по событию движения "Мыши" в таблице, чтобы
произвести эффект интерактивного изменения границы.pathName cget optionВозвращает текущую величину опции.
Option
может быть любой из опций, определенных для таблиц.pathName clear option ?first?
?last?Эта команда является удобной утилитой,
чтобы удалять различные объекты таблицы. first и last представляют
правильные табличные индексы. Если ни один индекс не задан, команда выполняется
для всей таблицы. Возможные подопции:pathName clear cache ?first?
?last?Очищает определенный раздел кеша,
если таблица использовала кеш.pathName clear sizes ?first?
?last?Отменяет заданные размеры ячеек для
столбцов и колонок, входящих в заданную область. Если задан только один
индекс, например, '2,0', то он задает область, состоящую из колонки '2'
и столбца '0'.pathName clear tags ?first?
?last?
Очищает определенную область от тэгов
(все row, column и cell тэги).pathName clear all ?first?
?last?
Выполняет все вышеуказанные действия
в определенной области.pathName configure ?option?
?value? ?option value ...?
Запрашивает или модифицируют опции
таблицы. Если никакая опция не определена, возвращает список, описывающий
все доступные опции для виджета (смотри Tk_ConfigureInfo для информации
о формате этого списка). Если опция указана без значения, команда возвращает
список, описывающий одну опцию (этот список идентичен соответствующему
подсписку списка, возвращаемого, если никакая опция не задана). Если заданы
одна или более пар опция-величина, то команда модифицирует данную опцию
виджета, чтобы она имела данное значение (значения); в этом случае команда
возвращает пустую строку. Опция может быть любой из опций, определенных
для команды
table.pathName curselection
?set
value?
Если аргументы команды не заданы,
то команда возвращает отсортированные индексы выбранных ячеек. В противном
случае она устанавливает во все выбранные ячейки заданное значение. Опция
set не воздействует на таблицу, если у таблицы нет связанного Tcl массива
или состояние таблицы неактивно.pathNamecurvalue?value?Если величина не задана, возвращается
величина из редактируемой ячейки (с индексом active), иначе величина
устанавливается в активной величине.pathNamedeleteoptionarg?arg?Эта команда используется, чтобы удалять
различные компоненты таблицы. У нее есть различные формы, в зависимости
от подопции:pathNamedeleteactive
index?index?Удаляет текст из активной ячейки.
Если дан только один индекс, команда удаляет символ после этого индекса,
в противном случае удаляются символы с первого индекса по второй. index
может быть числом, insert или end.pathNamedeletecols?switches?index?count?Удаляет count колонок, начиная с
колонки с индексом index. Если count
- отрицательное, удаляет колонки влево от начальной. В противном случае
удаляет колонки вправо. Выбор очистится. Дополнительные ключи:-cols valueУстанавливает искусственное ограничение
на число столбцов в активной области. Столбцы за пределами активной области
при этом изменяться не будут. По умолчанию используется величина опции
-cols
таблицы, то есть активная область распространяется на все столбцы. Использование
опции может вызвать интересные побочные эффекты, когда опция используется
в связке с другими опциями.-holddimensionsОбеспечивает сохранение числа столбцов
в таблице (при удалении могут появиться пустые столбцы вместо удаленных).
По умолчанию число столбцов уменьшается в соответствии со значением count.-holdtagsОбеспечивает сохранение тэгов, созданных
с помощью команды tag, при удалении всех ячеек, для которых они
были заданы. Тэги присваиваются новым ячейкам с соответствующими индексами.
Также предотвращает изменение ширины таблицы, если она задана с помощью
команды width. По умолчанию новые ячейки, вставшие на место удаленных,
не наследуют их тегов.-keeptitlesЗащищает ячейки области заголовка
от изменения. В противном случае они могут быть удалены подобно регулярным
ячейкам.-rows valueУстанавливает искусственное ограничение
на число строк в активной области. Строки за пределами активной области
при этом изменяться не будут. По умолчанию используется величина опции
-rows таблицы, то есть активная область распространяется на все строки.
Использование опции может вызвать интересные побочные эффекты, когда опция
используется в связке с другими опциями.--Означает конец ключей.pathNamedelete
rows ?switches?index?count?Удаляет count строк таблицы,
начиная со строки index (и включая ее). Если count отрицательное,
то удаляются предшествующие строки. В противном случае удаляются последующие
строки. Выбор очищается. Ключи - такие же, как для удаления столбца.pathNameflush?first?
?last?Сохраняет табличный кеш от first
до last. Если индексы не заданы, сохраняется весь кеш.pathNamegetfirst?last?Возвращает (в виде списка) значения
из ячеек, содержащихся в прямоугольной области с левым верхним углом, заданным
индексом first, и правым нижним углом, определяемым индексом last
(если задан).pathNameheight?row?
?valuerowvalue...?Если никакая строка не задана, возвращает
список, описывающий все строки, для которых высота установлена. Если колонка
задана без величины, возвращает высоту этой колонки в символах (положительное
число) или пикселях (отрицательное число). Если одна или более пар строка-величина
определены, тогда, устанавливает высоту соответствующих строк в строках
символов (положительное число) или пикселях (отрицательный номер). Если
задано значение высоты "default", то высота строки определяется значением
опции -rowheight.pathNameicursor?arg?Если команда задана без аргументов,
то она возвращает позицию курсора вставки в активной ячейке. Если команда
задана с одним аргументом, то она устанавливает курсор в этой точке в строке.
0 - перед первым символом. Допустимые индексы: insert для текущего положения
курсора и end для конца текста.pathNameindexindex?row|col?Возвращает индекс ячейки, которая
соответствует указанному индексу, в форме row,col.
Если задана опция row или col, то команда возвращает только
индекс строки или столбца соответственно.pathNameinsertoptionarg
argЭта команда используется, чтобы вставлять
различные объекты (значения, колонки, столбцы и т.п.) в таблицу. У нее
есть различные формы в зависимости от подопции:pathNameinsert
active index valuevalue является текстовой строкой,
которая вставляется в активную ячейку, начиная с позиции index.
Курсор затем позиционируется после встроенного текста. index может быть
числом, insert или end.pathNameinsert cols?switches?
index ?count?Вставляет count столбцов,
начиная с индекса
col. Если count является отрицательным
числом, они вставляются перед столбцом с индексом col. В противном
случае они вставляются после столбца с индексом col. Выбор очищается.
Ключи - те же, как при удаления столбца.pathNameinsert
rows?switches? index ?count?Вставляет count строк, начиная с
индекса col. Если count является отрицательным числом, они
вставляются перед строкой с индексом col. В противном случае они
вставляются после строки с индексом col. Выбор очистится. Ключи
- те же, как для удаления строки.pathNamerereadПеречитывает старое содержимое ячейки
снова в буфер редактирования. Полезно для обработки событий, когда <Escape>
нажимается,
чтобы прервать редактирование (стандартное поведение).pathNamescan
optionargsЭта команда используется, чтобы осуществить
"прокрутку" таблицы. У нее есть две формы в зависимости от опций:pathNamescan
markx yЗапоминает текущие координаты x
и
y
и вид таблицы; используется в связке с последующей scan dragto командой.
Обычно эта команда вызывается по нажатию на кнопку "Мыши". Возвращает пустую
строку.pathNamescan
dragtox yЭта команда вычисляет разность между
текущими координатами y и x и координатами x и y, запомненными в последней
команде scan mark для данного виджета. Затем она "прокручивает" таблицу
на 5-кратную разность координат. Эта команда обычно вызывается при движении
"Мыши" на таблице и используется для ускоренного просмотра таблицы. Возвращает
пустую строку.pathNameseeindex"Прокручивает" таблицу так, чтобы
ячейка, заданная индексом, оказалась первой ячейкой с левого верхнего края
таблицы (исключая строки и столбцы заголовков), если ячейка к настоящему
времени не видна на экране. Фактическая ячейка может не оказаться самой
первой, если за ней в таблице недостаточно ячеек, чтобы заполнить экран.pathNameselectionoptionargЭта команда используется, чтобы управлять
выбором в таблице. У нее есть различные формы, в зависимости от опций:pathNameselectionanchorindeУстанавливает якорь выбора в ячейке,
заданной индексом. Якорь выбора является концом выбора, который фиксируется,
пока второй конец области выбора передвигается с помощью "Мыши". Индекс
anchor
может использоваться для ссылок на соответствующую ячейку.pathNameselection
clear first ?last?Снимает выбор с выбранных ячеек от
first
до last (включительно). Состояние выбора для ячеек за пределами
этой области не изменяется. Если first равно all, команда
удаляет выбор из всех ячеек.pathNameselection
includesindexВозвращает `1',
если ячейка, указанная индексом, выбрана, и `0'
- если нет.pathNameselection
set first ?last?Выбирает все ячейки в области от
first
до
last включительно, не влияя на состояние выбора ячеек за пределами
этой области.pathNameset?row|col?
index?value? ?index value ...?Для каждой пары index value
устанавливает значение value в ячейке, определенной индексом. Проверка
корректности значений при этом не производится. Если списку пар индекс-величина
предшествует
row или col, величина value рассматривается
как Tcl список, и значения из списка устанавливаются в последовательных
ячейках строки или колонки соответственно. Например, команда
set row 2,3 {2,3 2,4 2,5}
Установит значения в 3 ячейки, от 2,3
до 2,5.pathNametagoption?arg
arg ...?Эта команда используется, чтобы управлять
тэгами. Точное поведение команды зависит от значения опции и аргументов.
Только опция cget требует использования реально существующих тэгов. В настоящее
время поддерживаются следующие формы команды:pathNametag
cell tagName?index ... ?Если команда задана без аргументов,
то она распечатывает список ячеек, которые используют тэг. В противном
случае она устанавливает тэг заданным ячейкам. Если тэг пустой ({}), ячейкам
восстанавливается тэг по умолчанию. Тэги, добавленные с помощью опций -*tagcommand,
здесь не обрабатываются.pathNametag
cgettagNameoptionЭта команда возвращает текущую величину
опции option для тэга tagName. option
может быть любой из опций, определенных для команды tag configure
для таблиц.pathNametag
col tagName?col ... ?Если команда задана без аргументов,
то она распечатывает список колонок, которые используют данный тэг. В противном
случае устанавливает тэг заданным столбцам. Если тэг пустой ({}), столбцам
восстанавливается тэг по умолчанию. Тэги, добавленные с помощью опции -coltagcommand,
здесь не обрабатываются.pathName tag configure tagName
?option? ?value? ?option value ...?Эта команда подобна команде configure
для таблиц, за исключением того, что она изменяет опции, связыванные с
тэгом tagName вместо модификации опций для всей таблицы. Если никакая опция
не задана, команда возвращает список всех доступных опций для tag_Name
(смотри
Tk_ConfigureInfo для информации о формате этого списка).
Если опция указана без величины, возвращается подсписок указанного списка,
соответствующий указанной опции. Если указана одна или более пар опция-
величина, то команда модифицирует данную опцию (опции) для указанного тэга;
в этом случае команда возвращает пустую строку. См. "ТЭГИ".pathNametag
deletetagNameУдаляет тэг. Если тэг не существует,
ошибки не возникает.pathNametag
existstagNameВозвращает `1',
если указанный тэг существует, и '0' - в противном случае.pathNametag
includestagNameindexВозвращает `1',
если ячейка с данным индексом имеет указанный тэг, и '0' - в противном
случае.pathNametag
names?pattern?Если никакой образец не задан, показывает
имена всех определенных тэгов в таблице. В противном случае образец используется
в качестве шаблона, и показываются только тэги, удовлетворяющие этому шаблону.pathNametag
rowtagName?row ...?Если команда задана без аргументов,
то она распечатывает список строк, которые используют данный тэг. В противном
случае она устанавливает данный тэг указанным строкам. Если тэг пустой
({}), строкам восстанавливается тэг по умолчанию. Тэги, добавленные с помощью
опции -rowtagcommand, не обрабатываются здесь.pathNamevalidateindexЯвно проверяет корректность значения
в ячейке, определенной индексом, с помощью команды, заданной опцией -validatecommand.
Возвращает '0' или `1'
в зависимости от результатов проверки.pathNamewidth?col?
?value
col value ...?Если никакой столбец не задан, возвращает
список, описывающий все столбцы, для которых установлена ширина. Если столбец
указан без указания ширины, команда возвращает ширину соответствующего
столбца в символах (положительное число) или пикселях (отрицательное число).
Если заданы одна или более пар колонка-величина, тогда команда устанавливает
каждому перечисленному столбцу соответствующую ширину в символах (положительное
число) или пикселях (отрицательное число). Если величина совпадает с шириной,
задаваемой по умолчанию, колонка в дальнейшем будет использовать ширину,
определенную с помощью опции -colwidth.pathName window option
?arg arg ...?
Эта команда используется, чтобы управлять
встроенными окнами. Точное поведение команды зависит от значения опции
и аргументов. В настоящее время поддерживаются следующие формы команды:pathNamewindow
cgetindex optionЭта команда возвращает текущую величину
опции option для окна в ячейке с данным индексом. option может иметь
любое из значений, допустимых для команды window configure.pathNamewindow
configureindex ?option? ?value? ?option value ...?Эта команда подобна команде configure
для таблицы, за исключением того, что она изменяет опции, связанные с встроенным
окном с данным индексом, а не опции таблицы в целом. Если опция указана
без величины, возвращается подсписок указанного списка, соответствующий
указанной опции. Если указана одна или более пар опция-величина, то команда
модифицирует данную опцию (опции) для указанного окна; в этом случае команда
возвращает пустую строку. См. "Встроенные
окна".pathName window deleteindex
?index ...?Удаляет встроенное окно из таблицы.
Соответствующее окно также будет удалено.pathNamewindow
move indexFrom indexToПеремещает встроенное окно из одной
ячейки в другую. Если в целевой ячейке уже существует другое окно, оно
будет удалено.pathNamewindow
names ?pattern?Если никакой шаблон не задан, команда
показывает все ячейки, в которых есть встроенные окна. В противном случае
показывает только те ячейки, в которых есть встроенные окна с именами,
удовлетворяющими шаблону.pathNamexview
argsЭта команда используется для запросов
о горизонтальной позиции таблицы в окне и для изменения горизонтальной
позиции таблицы в окне. Команда может использоваться в одной из следующих
форм:pathNamexview Возвращает список, содержащий два
элемента. Каждый из них является действительным числом из диапазона '0'
- `1'. Они указывают
соответственно левую и правую границы видимой области. Например, если первый
элемент - ".2" а второй элемент - ".6", то 20% табличного текста выходит
за пределы экрана слева, средние 40% текста видны в окне, и 40% текста
выходит за пределы экрана вправо. Эти величины используются для конфигурации
полос прокрутки с помощью команды, заданной опцией -xscrollcommand.pathName xview index "Прокручивает" таблицу так, чтобы
столбец с данным индексом отображался на левом крае окна.pathNamexview
moveto fraction "Прокручивает" таблицу так, чтобы
доля общей ширины табличного текста, выходящая за пределы экрана влево,
равнялась fraction. fraction должно
быть дробью между '0' и `1'.pathName xview scroll numberwhatЭта команда "прокручивает" таблицу
влево или вправо на заданное расстояние. number должно быть целым
числом. what должно быть units или pages или сокращением
одного из их. Если what равно units, таблица сдвигается на
number
символов (символ равен ширине символа 0); если what равно
pages,
таблица сдвигается на соответствующее число экранов. Если number является
отрицательным числом, тогда более левые символы становятся видимыми; если
number - положительное число, тогда более правые символы становятся видимыми.pathNameyviewargsЭта команда используется для запросов
о вертикальной позиции таблицы в окне и для изменения вертикальной позиции
таблицы в окне. Команда может использоваться в одной из следующих форм:pathNamexviewВозвращает список, содержащий два
элемента. Каждый из них является действительным числом из диапазона '0'
- `1'. Они указывают
соответственно верхнюю и нижнюю границы видимой области (например,
`.5'
означает середину таблицы) Эти величины используются для конфигурации полос
прокрутки с помощью команды, заданной опцией
-yscrollcommand.pathName yview index"Прокручивает" таблицу так, чтобы
строка с данным индексом отображалась на верхнем крае окна.pathNameyview
movetofraction"Прокручивает" таблицу так, чтобы
доля общей высоты табличного текста, выходящая за пределы экрана вверх,
равнялась fraction. fraction должно
быть дробью между '0' и `1'.pathName yview scroll number
whatЭта команда "прокручивает" таблицу
вверх или вниз на заданное расстояние. number должно быть целым
числом.
what должно быть units или pages или сокращением
одного из их. Если what равно units, таблица сдвигается на
number
строк текста; если what равно pages, таблица сдвигается на
соответствующее число экранов. Если number является отрицательным
числом, тогда более ранние символы становятся видимыми; если
number
- положительное число, тогда более поздние символы становятся видимыми.СТАНДАРТНОЕ
ПОВЕДЕНИЕ Вновь созданная таблица обладает
следующим поведением.
[1] Нажатие левой кнопки "Мыши" в ячейке
активизирует эту ячейку. Нажатие кнопки "Мыши" в уже активной ячейке перемещает
курсор вставки на ближайший символ.
[2] Перемещение курсора "Мыши", при
нажатой левой кнопке, позволяет выделить область таблицы. Выход курсора
из таблицы вниз, при нажатой левой кнопке "Мыши", обеспечивает прокрутку
таблицы одновременно с выделением ячеек.
[3] Перемещение курсора "Мыши", при
нажатой средней кнопке "Мыши", обеспечивает прокрутку таблицы без выделения.
[4] Клавиша Home возвращает
к началу таблицы.
[5] Клавиша End перемещает в
конец таблицы.
[6] Сочетание клавиш Control-Home
перемещает в начало таблицы и активизирует первую ячейку.
[7] Сочетание клавиш Control-End
перемещает в конец таблицы и активизирует последнюю ячейку.
[8] Сочетание клавиш Shift-Control-Home
расширяет выделенную область таблицы до ее начала.
[9] Сочетание клавиш Shift-Control-End
расширяет выделенную область таблицы до ее конца.
[10] Клавиши с изображениями стрелок
позволяют выбрать соседнюю ячейку в соответствующем направлении.
[11] Сочетание клавиш Shift-<arrow>
расширяет выбранную область в направлении, указываемом стрелкой.
[12] Сочетание клавиш Control-leftarrow
и
Control-rightarrow перемещают курсор вставки внутри ячейки.
[13] Сочетание клавиш Control-slash
выбирает все ячейки.
[14] Сочетание клавиш Control-backslash
clears снимает выбор со всех ячеек.
[15] Клавиша Backspace удаляет
символ перед курсором вставки в активной ячейке.
[16] Клавиша Delete удаляет
символ после курсора вставки в активной ячейке.
[17] Клавиша Escape перечитывает
содержимое активной ячейки из заданного источника данных, отменяя любые
изменения, выполненные в ячейке.
[18] Сочетание клавиш Control-a
перемещает курсор вставки в начало активной ячейки.
[19] Сочетание клавиш Control-e
перемещает курсор вставки в конец активной ячейки.
[20] Control-minus и Control-equals
уменьшает и увеличивает ширину столбца, содержащего активную ячейку.
[21] Перемещение курсора "Мыши" с нажатой
правой кнопкой когда курсор находится на границе ячейки вызовет изменение
размеров строки и/или столбца, (при соответствующей величине опция -resizeborders).
Поведение таблицы может незначительно
отличаться от описанного выше в зависимости от значения опции -selectionmode.
Если таблица дезактивирована с помощью
опции -state, то ее вид не отличается от вида активной таблицы,
и ячейки могут по-прежнему быть выбраны, но никакой курсор вставки не появится
в ячейках и никакие модификации ячейки не произойдут.
Поведение таблиц может изменяться путем
определения новых событий для конкретной таблицы или путем переопределения
событий для всего класса. Описание стандартных событий приведено в файле
tkTable.tcl.