place
-
NAME
- place — Менеджер геометрии для фиксированного или резинового размещения
- SYNOPSIS
- DESCRIPTION
-
place window option value ?option value ...?
- place configure window ?option? ?value option value ...?
-
-anchor where
- -bordermode mode
- -height size
- -in master
- -relheight size
- -relwidth size
- -relx location
- -rely location
- -width size
- -x location
- -y location
- -bordermode mode
- place forget window
- place info window
- place slaves window
- place configure window ?option? ?value option value ...?
- FINE POINTS
- EXAMPLE
- SEE ALSO
- KEYWORDS
Name
place — Менеджер геометрии для фиксированного или резинового размещенияSynopsis
place option arg ?arg ...?Description
The placer is a geometry manager for Tk. It provides simple fixed placement of windows, where you specify the exact size and location of one window, called the slave, within another window, called the master. The placer also provides rubber-sheet placement, where you specify the size and location of the slave in terms of the dimensions of the master, so that the slave changes size and location in response to changes in the size of the master. Lastly, the placer allows you to mix these styles of placement so that, for example, the slave has a fixed width and height but is centered inside the master.- place window option value ?option value ...?
- Обеспечивает управление менеджером геометрии подчиненного окна, путь к которому — window. Остальные аргументы состоят из одной или нескольких пар option-value, которые определяют способ управления геометрией window. Option может принимать любое из значений, принимаемых командой place configure.
- place configure window ?option? ?value option value ...?
- Запрашивает или изменяет параметры геометрии подчиненного окна, заданного window. Если параметр option не указан, эта команда возвращает список, описывающий доступные параметры (см. Tk_ConfigureInfo для получения информации о формате этого списка). Если option указан без value, команда возвращает список, описывающий один именованный параметр (этот список будет идентичен соответствующему подсписку значения, возвращаемого, если option не указан). Если указаны одна или несколько пар option-value, команда изменяет указанный(ые) параметр(ы) на указанное(ые) значение(я); в этом случае команда возвращает пустую строку.
Поддерживаются следующие пары option-value:
- -anchor where
- Where указывает, какая точка window будет расположена в месте (x,y), выбранном параметрами -x, -y, -relx и -rely. Точка привязки задается относительно внешней области window, включая ее границу, если она есть. Таким образом, если where равно se, то нижний правый угол границы window будет отображаться в заданном местоположении (x,y) в главном окне. По умолчанию положение якоря равно nw.
- -bordermode mode
- Mode определяет степень использования границ внутри главного окна при определении размещения подчиненного окна. Значение по умолчанию и наиболее распространенное — inside. В этом случае менеджер геометрии считает областью главного окна самую внутреннюю область, внутри любой границы: параметр -x 0 соответствует координате x, расположенной прямо внутри границы, а параметр -relwidth 1.0 означает, что window заполнит область внутри границы главного окна.
Если mode равно outside, то менеджер геометрии считает областью главного окна область, включающую его границу; этот режим обычно используется при размещении window вне его главного окна, как с параметрами -x 0 -y 0 -anchor ne. Наконец, mode может быть указан как ignore, в этом случае границы игнорируются: область главного окна считается его официальной областью X, которая включает любую внутреннюю границу, но не внешнюю границу. Режим bordermode ignore, вероятно, не очень полезен.
- -height size
- Size задает высоту для window в экранных единицах (т.е. любая из форм, принимаемых Tk_GetPixels). Высота будет внешним размером window, включая его границу, если она есть. Если size — пустая строка или не указан параметр -height или -relheight, то будет использоваться высота, запрошенная внутренне окном.
- -in master
- Master указывает имя пути окна, относительно которого должно быть размещено окно window. Master должен быть либо родителем window, либо потомком родителя window. Кроме того, master и window должны быть потомками одного и того же окна верхнего уровня. Эти ограничения необходимы для того, чтобы гарантировать, что window будет виден, когда master виден. Если этот параметр не указан, то главным окном по умолчанию будет родитель window.
- -relheight size
- Size задает высоту для window. В этом случае высота указывается как число с плавающей точкой относительно высоты главного окна: 0,5 означает, что window будет в два раза ниже главного окна, 1,0 означает, что window будет иметь ту же высоту, что и главное окно, и так далее. Если для подчиненного окна указаны как -height, так и -relheight, то их значения суммируются. Например, -relheight 1.0 -height -2 делает подчиненное окно на 2 пикселя короче, чем главное.
- -relwidth size
- Size задает ширину для window. В этом случае ширина указывается как число с плавающей точкой относительно ширины главного окна: 0,5 означает, что window будет в два раза уже главного окна, 1,0 означает, что window будет иметь ту же ширину, что и главное окно, и так далее. Если для подчиненного окна указаны как -width, так и -relwidth, то их значения суммируются. Например, -relwidth 1.0 -width 5 делает подчиненное окно на 5 пикселей шире, чем главное.
- -relx location
- Location задает координату x внутри главного окна для точки привязки window. В этом случае местоположение указывается относительно как число с плавающей точкой: 0,0 соответствует левому краю главного окна, а 1,0 — правому краю главного окна. Location не обязательно должно находиться в диапазоне 0,0-1,0. Если для подчиненного окна указаны как -x, так и -relx, то их значения суммируются. Например, -relx 0.5 -x -2 позиционирует левый край подчиненного окна на 2 пикселя левее центра его главного окна.
- -rely location
- Location задает координату y внутри главного окна для точки привязки window. В этом случае значение указывается относительно как число с плавающей точкой: 0,0 соответствует верхнему краю главного окна, а 1,0 — нижнему краю главного окна. Location не обязательно должно находиться в диапазоне 0,0-1,0. Если для подчиненного окна указаны как -y, так и -rely, то их значения суммируются. Например, -rely 0.5 -x 3 позиционирует верхний край подчиненного окна на 3 пикселя ниже центра его главного окна.
- -width size
- Size задает ширину для window в экранных единицах (т.е. любая из форм, принимаемых Tk_GetPixels). Ширина будет внешней шириной window, включая его границу, если она есть. Если size — пустая строка или не указан параметр -width или -relwidth, то будет использоваться ширина, запрошенная внутренне окном.
- -x location
- Location задает координату x внутри главного окна для точки привязки window. Местоположение указывается в экранных единицах (т.е. любая из форм, принимаемых Tk_GetPixels) и не обязательно должно лежать в пределах главного окна.
- -y location
- Location задает координату y внутри главного окна для точки привязки window. Местоположение указывается в экранных единицах (т.е. любая из форм, принимаемых Tk_GetPixels) и не обязательно должно лежать в пределах главного окна.
Если одно и то же значение указано отдельно с двумя различными параметрами, такими как -x и -relx, то используется последний параметр, а предыдущий игнорируется.
- place forget window
- Заставляет менеджер геометрии прекратить управление геометрией window. Побочным эффектом этой команды является отключение отображения window, так что оно не будет отображаться на экране. Если window в настоящее время не управляется менеджером геометрии, то команда не оказывает никакого действия. Эта команда возвращает пустую строку.
- place info window
- Возвращает список, содержащий текущую конфигурацию window. Список состоит из пар option-value в точно такой же форме, как и те, которые могут быть указаны команде place configure.
- place slaves window
- Возвращает список всех подчиненных окон, для которых window является главным. Если для window нет подчиненных окон, то возвращается пустая строка.
Если конфигурация окна была получена с помощью place info, то эту конфигурацию можно восстановить позже, сначала используя place forget для удаления любой существующей информации об окне, а затем вызвав place configure с сохраненной информацией.
Fine points
Необязательно, чтобы главное окно было родителем подчиненного окна. Эта функция полезна как минимум в двух ситуациях. Во-первых, для сложных макетов окон это означает, что вы можете создать иерархию дочерних окон, чья единственная цель — помочь в макетировании родительского окна. «Реальные дети» родителя (то есть окна, важные для пользовательского интерфейса приложения) могут быть детьми родителя, но располагаться внутри окон иерархии управления геометрией. Это означает, что имена путей «реальных детей» не отражают иерархию управления геометрией, и пользователи могут указывать параметры для реальных детей, не зная структуры иерархии управления геометрией.Вторая причина для того, чтобы главное окно отличалось от родителя подчиненного, заключается в связывании двух дочерних окон. Например, разместитель может быть использован для принудительного центрирования окна сразу под одним из его дочерних окон, указав конфигурацию
-in sibling -relx 0.5 -rely 1.0 -anchor n -bordermode outsideВсякий раз, когда дочернее окно будет перемещено в будущем, подчиненное окно также будет перемещено.
В отличие от многих других менеджеров геометрии (таких как packer) разместитель не пытается манипулировать геометрией главных окон или родителями подчиненных окон (то есть он не устанавливает их запрошенные размеры). Чтобы контролировать размеры этих окон, сделайте их окнами типа рамок и холстов, которые предоставляют параметры конфигурации для этой цели.
Пример
Сделайте метку, чтобы она занимала среднюю часть главного окна, независимо от того, как оно масштабируется:label .l -text "In the\nMiddle!" -bg black -fg white place .l -relwidth .3 -relx .35 -relheight .3 -rely .35
См. также
grid, pack
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/place.htm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/place.htm