528 lines
43 KiB
HTML
528 lines
43 KiB
HTML
<!DOCTYPE html PUBLIC -//W3C//DTD HTML 3.2//EN>
|
||
<html>
|
||
<head>
|
||
<title>Wm</title>
|
||
</head>
|
||
<body>
|
||
<center><h1>Wm</h1></center>
|
||
<p>Команда взаимодействия с менеджером окон.</p>
|
||
|
||
<p><ul>
|
||
<li><a href=Wm.html#СИНТАКСИС>Синтаксис</a></li>
|
||
<li><a href=Wm.html#ОПИСАНИЕ>Описание</a></li>
|
||
<li><a href=Wm.html#УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ>Управление геометрией</a></li>
|
||
<li><a href=Wm.html#УПРАВЛЕНИЕ ОКНАМИ С СЕТКОЙ>Управление окнами с сеткой</a></li>
|
||
<li><a href=Wm.html#ОШИБКИ>Ошибки</a></li>
|
||
</ul>
|
||
|
||
<p><a name=СИНТАКСИС></a><b>СИНТАКСИС</b>
|
||
|
||
<dl>
|
||
<dt><b>wm</b> <i>option window ?args?</i></dt>
|
||
</dl>
|
||
|
||
<p><a name=ОПИСАНИЕ></a><b>ОПИСАНИЕ</b>
|
||
|
||
Команда <b>wm</b> предназначена для
|
||
взаимодействия с менеджером окон и обеспечивает таким образом
|
||
управление такими атрибутами окон, как заголовок, размеры и
|
||
размещение, возможность изменять размер. Команда имеет несколько
|
||
форм в зависимости от используемых опций. Во всех формах команда
|
||
предполагает наличие по крайней мере одного аргумента имени toplevel окна.
|
||
|
||
<p>Ниже перечислены возможные формы команды.
|
||
<dl>
|
||
<dt><b>wm aspect</b> <i>window minNumer minDenom maxNumer maxDenom</i></dt>
|
||
|
||
<dt><p>Если аргументы <i>minNumer, minDenom, maxNume</i> и <i>maxDenom</i>
|
||
заданы, они передаются менеджеру
|
||
окон, который использует их для определения допустимых пропорций
|
||
окна. Пропорции (отношение ширина высота) могут быть в диапазоне
|
||
от <i>minNumer/minDenom</i> до <i>maxNumer/maxDenom</i>. Если
|
||
аргументы <i>minNumer</i> и т.д. определены как пустые строки, то
|
||
существующие ограничения на пропорции отменяются. Если аргументы
|
||
<i>minNumer</i> и т.д. заданы, то команда возвращает пустое
|
||
значение. В противном случае она возвращает список из четырех
|
||
элементов текущих значений <i>minNumer, minDenom, maxNumer</i>, и <i>maxDenom</i>
|
||
(если ограничения не заданы, возвращается пустая строка).
|
||
</dt>
|
||
<dt><p><b>wm client</b> <i>window name</i></dt>
|
||
|
||
<dt><p><div>Если имя <i>name</i> указано (<i>name</i> должно
|
||
быть именем компьютера, на котором исполняется приложение), то
|
||
оно сохраняется в свойстве окна <b>WM_CLIENT_MACHINE</b> и может
|
||
использоваться менеджером окон или менеджером сессий. В этом
|
||
случае команда возвращает пустую строку. Если аргумент
|
||
<i>name</i> не задан, команда возвращает последнее установленное
|
||
ранее значение свойства. Если аргумент <i>name</i> определен как
|
||
пустая строка, свойство окна <b>WM_CLIENT_MACHINE</b> удаляется.</dt>
|
||
|
||
<dt><p><b>wm colormapwindows</b> <i>window ?windowList?</i></dt>
|
||
|
||
<dt><p>Эта команда используется для управления свойством
|
||
<b>WM_COLORMAP_WINDOWS</b>, которое обеспечивает менеджер окон
|
||
информацией об окнах, имеющих собственную палитру. Если аргумент
|
||
<i>windowList</i>не задан, команда возвращает список окон,
|
||
имеющих собственную палитру. Если аргумент задан, он представляет
|
||
собой список полных имен окон. Команда изменяет старое значение
|
||
свойства на новое и возвращает пустую строку. Список окон
|
||
перечисляет внутренние окна, палитра которых отличается от
|
||
палитры их логических предков. Порядок, в котором перечислены
|
||
окна, указывает порядок, в котором менеджер окон просматривает
|
||
окна, пытаясь разместить новые цвета в палитре. Не указанные в
|
||
списке окна обрабатываются в последнюю очередь. Если команда не
|
||
использовалась, Tk автоматически устанавливает свойство для
|
||
каждого toplevel окна. В списке перечисляются все его внутренние
|
||
окна, имеющие собственную палитру, в случайном порядке. В конце
|
||
списка указывается само toplevel окно. Более подробно свойство
|
||
<b>WM_COLORMAP_WINDOWS</b> описано в (1).</dt>
|
||
|
||
<dt><p><b>wm command</b> <i>window value</i></dt>
|
||
|
||
<dt><p>Если аргумент <i>value</i> задан, команда
|
||
сохраняет его значение в свойстве окна <b>WM_COMMAND</b>, которое
|
||
используется менеджером окон или менеджером сессий. В этом случае
|
||
команда возвращает пустую строку. Аргумент <i>value</i> должен
|
||
содержать список, элементы которого являются словами команды,
|
||
используемой для запуска приложения (см. также <b>wmuse</b><b>).</b></dt>
|
||
|
||
<dt><p>Если аргумент <i>value</i> не задан, команда возвращает последнее
|
||
установленное ранее значение свойства. Если аргумент <i>name</i>
|
||
определен как пустая строка, свойство окна <b>WM_COMMAND</b>
|
||
удаляется.</dt>
|
||
|
||
<dt><p><b>wm deiconify</b> <i>window</i></p></dt>
|
||
|
||
<dt><p>Заставляет окно появиться на экране в нормальном
|
||
виде (а не в виде иконки, например,). Если окно ранее не
|
||
появлялось на экране, выполнение команды не приведет к его
|
||
появлению, но она гарантирует, что если в будущем окно появится,
|
||
оно появится в нормальном виде. Команда возвращает пустую
|
||
строку.</dt>
|
||
|
||
<dt><p><b>wm focusmodel <i></i></b><i>window</i><b>active</b>|<b>passive</b></dt>
|
||
|
||
<dt><p>Если тип фокуса для (<b>active</b> или
|
||
<b>passive</b>) окна указан в команде, он определяет какой тип
|
||
фокуса будет использоваться. В этом случае команда возвращает
|
||
пустую строку. Если тип фокуса не указан, команда возвращает
|
||
текущее значение типа. Активный тип фокуса означает, что окно
|
||
запрашивает фокус ввода себе или своим потомкам, даже если в этот
|
||
момент фокус находится в другом приложении. Пассивный фокус
|
||
означает, что окно не запрашивает фокус, а получает его от
|
||
менеджера окон. Однако, после того, как окно или один из его
|
||
потомков получил фокус, приложение может передать его другому
|
||
потомку окна. По умолчанию устанавливает пассивный фокус.</dt>
|
||
|
||
<dt><p><b>wm <i></i>frame</b> <i>window</i><dt>
|
||
|
||
<dt><p>Если окно заключено менеджером окон в
|
||
декоративную рамку, команда возвращает идентификатор самой
|
||
внешней рамки, которая содержит окно (окно, являющееся потомком
|
||
корневого окна или виртуального корневого окна). Вид
|
||
идентификатора зависит от платформы. Если окно не заключено в
|
||
рамку, возвращается идентификатор окна, вид которого также
|
||
зависит от платформы.</t>
|
||
|
||
<dt><p><b>wm geometry</b> <i>window newGeometry</i></dt>
|
||
|
||
<dt><p>Если задан аргумент <i>newGeometry</i>, размеры и размещение
|
||
окна изменяются, а команда возвращает пустую строку. В противном
|
||
случае возвращается последняя информация о размерах и размещении
|
||
окна (независимо от того, была ли она задана путем изменения
|
||
размеров окна вручную или с помощью команды <b>wm</b>). Аргумент
|
||
<i>newGeometry</i> должен быть задан в следующем виде
|
||
<i>=ширинаxвысота╠x╠y</i>, где любая из частей
|
||
<i>=ширинаxвысота</i> или <i>╠x╠y</i> может быть опущена. Ширина
|
||
и высота должны быть положительными целыми числами, задающими
|
||
желаемый размер окна. Если для окна задана сетка
|
||
(см. .<a href=Wm.html#УПРАВЛЕНИЕ ОКНАМИ С СЕТКОЙ>Управление окнами с
|
||
сеткой</a>.), размеры указываются в шагах сетки. В противном
|
||
случае размеры указываются в пикселях. <i>X</i> и Y определяют
|
||
желаемое размещение окна на экране в пикселях. Если перед
|
||
<i>x</i> стоит .<i>+.,</i> то величина <i>x</i> определяет
|
||
расстояние от левого края экрана до левого края окна, в противном
|
||
случае <i>x</i> задает расстояние от правого края экрана до
|
||
правого края окна. Если перед y стоит .+., то величина <i>y</i>
|
||
определяет расстояние от верхнего края экрана до верхнего края
|
||
окна, в противном случае <i>y</i> задает расстояние от низа
|
||
экрана до нижнего края окна. Если аргумент <i>newGeometry</i>
|
||
задан как пустая строка, текущие установленные пользователем
|
||
размеры окна отменяются и окно приобретает размеры, определяемые
|
||
размерами составляющих его виджетов.</dt>
|
||
|
||
<dt><p><b>wm grid</b> <i>window baseWidth baseHeight widthInc heightInc</i></dt>
|
||
|
||
<dt><br>Команда определяет наличие сетки в окне и
|
||
позволяет задать шаг сетки в пикселях. <i>BaseWidth</i> и
|
||
<i>baseHeight</i> определяют в единицах сетки исходный размер
|
||
окна (определяемый, исходя из размеров виджетов). <i>WidthInc</i>
|
||
и <i>heightInc</i> определяют соответственно горизонтальный и
|
||
вертикальный шаг сетки. Таким образом, эти четыре величины
|
||
определяют множество допустимых размеров окна. После выполнения
|
||
этой команды команда <b>wm geometry</b> считает размеры окна
|
||
заданными в шагах сетки. Более того, при ручном изменении
|
||
размеров менеджер окон показывает размер окна в шагах (ячейках)
|
||
сетки и позволяет изменять размер только дискретно в целых шагах
|
||
сетки.<br>
|
||
Если <i>BaseWidth</i> и последующие аргументы команды пустые
|
||
строки, команда указывает, что окно больше не имеет сетки.</dt>
|
||
|
||
<dt><br>Если <i>BaseWidth</i> и последующие аргументы
|
||
заданы, команда возвращает пустую строку. В противном случае
|
||
команда возвращает список из четырех элементов, содержащий
|
||
текущие значения <i>BaseWidth</i> и последующих аргументов. Если
|
||
окно не имеет сетки возвращается пустая строка.</dt>
|
||
|
||
<dt><p><b><i>Замечание</i></b>. Потребность в использовании команды
|
||
<b>wm grid</b> возникает относительно редко, поскольку той же
|
||
функциональности поведения окна можно добиться, например, с
|
||
помощью опции <b>setGrid</b> в командах создания виджетов.</dt>
|
||
|
||
<dt><p><b>wm group</b> <i>window pathName</i></dt>
|
||
|
||
<dt><p>Если аргумент <i>pathName</i> указан, окно
|
||
<i>pathName</i> становится лидером группы для <i>window</i>.
|
||
Менеджер окон использует эту информацию, например, для того,
|
||
чтобы одновременно выводить с экрана все окна группы, если
|
||
сворачивается лидер группы. Если аргумент <i>pathName</i>
|
||
представлен пустой строкой, окно <i>window</i> выводится из
|
||
состава группы.<br>
|
||
Если аргумент <i>pathName</i> задан, команда возвращает пустую
|
||
строку. В противном случае команда возвращает имя текущего лидера
|
||
группы для окна <i>window</i> или пустую строку, если лидер не
|
||
определен.</dt>
|
||
|
||
<dt><p><b>wm iconbitmap</b> <i>window bitmap</i></dt>
|
||
|
||
<dt><p>Если аргумент <i>bitmap</i> задан, он определяет
|
||
имя растрового образа, которое передается менеджеру окон для
|
||
использования в качестве иконки. Имя образа может быть задано в
|
||
одной из следующих форм:</dt>
|
||
<dt>
|
||
<dd>@<i>ИмяФайла</i> файл должен содержать описание растрового
|
||
рисунка в формате, соответствующем стандарту X11 или X10</dd>
|
||
|
||
<dd><i>name</i> имя образа типа <i>bitmap</i>, ранее созданного в приложении.</dd>
|
||
|
||
<dd>Если аргумент <i>bitmap</i> представляет собой пустую строку, отменяется использование ранее заданного образа.</dd>
|
||
|
||
<dd>Если аргумент <i>bitmap</i> задан, команда возвращает пустую строку. В противном случае команда возвращает имя образа, используемого джля иконки, либо пустую строку, если образ не задан.</dd>
|
||
</dt>
|
||
<dt><p><b>wm iconify</b> <i>window</i></dt>
|
||
|
||
<dt><p>Команда сворачивает указанное окно. Если окно еще не было размещено на экран, оно появится, когда это произойдет, в виде иконки.</dt>
|
||
|
||
<dt><p><b>wm iconmask</b> <i>window bitmap</i></dt>
|
||
|
||
<dt><p>Если аргумент <i>bitmap</i> задан, он определяет
|
||
имя растрового образа, которое передается менеджеру окон для
|
||
использования в качестве маски для иконки. Там, где маска имеет
|
||
значение .0., образ иконки не отображается; там, где маска имеет
|
||
значение .1., маска рисуется. Имя образа может быть задано в
|
||
одной из следующих форм:</dt>
|
||
|
||
<dt><br><i>@ИмяФайла</i> файл должен содержать описание растрового рисунка в формате, соответствующем стандарту X11 или X10;</dt>
|
||
|
||
<dt><br><i>name</i> имя образа типа <i>bitmap</i>, ранее созданного в приложении.</dt>
|
||
|
||
<dt><br>Если аргумент <i>bitmap</i> представляет собой пустую строку, отменяется использование ранее заданной маски (это эквивалентно заданию маски из одних единиц).</dt>
|
||
|
||
<dt><br>Если аргумент <i>bitmap</i> задан, команда возвращает пустую строку. В противном случае команда возвращает имя образа, используемого для маски для данного окна, либо пустую строку, если маска не задана.</dt>
|
||
|
||
<dt><br><b>wm iconname</b> <i>window ?newName?</i></dt>
|
||
|
||
<dt><br>Если аргумент <i>newName</i> задан, он передается менеджеру окон для использования в качестве имени иконки для окна. В этом случае команда возвращает пустую строку. Если аргумент <i>newName</i>не задан, команда возвращает текущее имя иконки для окна; если имя иконки не задано, команда возвращает пустую строку (в этом случае менеджер окон использует в качестве имени иконки имя окна, заданное с помощью команды <b>wmtitle</b><b>).</b></dt>
|
||
|
||
<dt><br><b>wm iconposition</b> <i>window x y</i></dt>
|
||
|
||
<dt><br>Если аргументы <i>x</i> и <i>y</i> заданы, они
|
||
передаются менеджеру окон и используются как подсказка при
|
||
размещении иконки окна <i>window</i>. В этом случае команда
|
||
возвращает пустую строку. Если <i>x</i> и <i>y</i> представляют
|
||
собой пустые строки, команда отменяет ранее определенную
|
||
подсказку для размещения иконки. Если аргументы <i>x</i> и
|
||
<i>y</i> не заданы, команда возвращает текущее значение подсказки
|
||
(или пустую строку, если она не задана).</dt>
|
||
|
||
<dt><br><b>wm iconwindow</b> <i>window pathName</i></dt>
|
||
|
||
<dt><br>Если аргумент <i>pathName</i> указан, он
|
||
определяет имя окна, которое используется в качестве иконки для
|
||
окна <i>window</i>: кодгда окно <i>window</i> свертывается,
|
||
появляется окно <i>pathName</i>, которое используется в качестве
|
||
иконки. Когда окно <i>window</i> разворачивается, окно
|
||
<i>pathName</i> выводится с экрана. Если аргумент <i>pathName</i>
|
||
представляет собой пустую строку, ранее определенное окно больше
|
||
не используется как иконка.</dt>
|
||
|
||
<dt><br>Если аргумент <i>pathName</i> указан, команда возвращает пустую
|
||
строку. В противном случае команда возвращает имя окна, ранее
|
||
заданного в качестве иконки, или пустую строку, если ранее оно не
|
||
было задано.</dt>
|
||
<dt><br>Нажатие на кнопку .Мыши. в окне-иконке не обрабатываются приложением, что позволяет обрабатывать эти события менеджеру окон.</dt>
|
||
|
||
<dt><br>Замечание. Не все менеджеры окон позволяют использовать Tk-окно в качестве иконки.</dt>
|
||
|
||
<dt><br><b>wm maxsize</b> <i>window width height</i></dt>
|
||
|
||
<dt><br>Если аргументы <i>width</i> и <i>height</i>
|
||
заданы, они задают максимальный возможный размер окна. Если в
|
||
окне определена сетка, размеры указываются в шагах сетки. В
|
||
противном случае размеры указываются в пикселях. Менеджер окон не
|
||
позволяет окну становиться больше, чем задано в команде.<br>
|
||
Если аргументы <i>width</i> и <i>height</i> заданы, команда
|
||
возвращает пустую строку, в противном случае она возвращает
|
||
список, содержащий два элемента: текущие ограничения на размер
|
||
окна. По умолчанию максимальные размеры окна равны размеру
|
||
экрана. Если изменение размеров окна запрещено с помощью команды
|
||
<b>wm <i></i>resizable</b>, команда <b>wmmaxsize</b> не влияет на
|
||
окно. Более подробно этот вопрос рассмотрен ниже
|
||
(см. <a href=Wm.html#УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ>Управление геометрией</a>.)</dt>
|
||
|
||
<dt><p><b>wm minsize</b> <i>window width height</i></<dt>>
|
||
|
||
<dt><br>Если аргументы <i>width</i> и <i>height</i>
|
||
заданы, они задают минимальный возможный размер окна. Если в окне
|
||
определена сетка, размеры указываются в шагах сетки. В противном
|
||
случае размеры указываются в пикселях. Менеджер окон не позволяет
|
||
окну становиться меньше, чем задано в команде.<br>
|
||
Если аргументы <i>width</i> и <i>height</i> заданы, команда
|
||
возвращает пустую строку, в противном случае она возвращает
|
||
список, содержащий два элемента: текущие ограничения на размер
|
||
окна. По умолчанию минимальные размеры окна равны одному пикселю
|
||
в каждом направлении. Если изменение размеров окна запрещено с
|
||
помощью команды <b>wm resizable</b>, команда <b>wm maxsize</b> не
|
||
влияет на окно. Более подробно этот вопрос рассмотрен ниже
|
||
(см. <a href=Wm.html#УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ>Управление геометрией</a>.).</dt>
|
||
|
||
<dt><p><b>wm overrideredirect</b> <i>window boolean</i></dt>
|
||
|
||
<dt><br>Если аргумент <i>boolean</i> задан, он должен
|
||
быть булевой величиной. Его значение присваивается
|
||
<i>override-redirect</i> флагу окна. Если аргумент не задан,
|
||
команда возвращает .1. или .0., в зависимости от того, установлен
|
||
ли флаг для <i>window</i>.<br>
|
||
Установка флага приводит к тому, что окно не управляется
|
||
менеджером окон. В частности, окно не будет заключено в
|
||
декоративную рамку и пользователь не сможет изменять размеры и
|
||
положение окна, используя стандартные механизмы менеджера
|
||
окон.</dt>
|
||
|
||
<p><b>wm positionfrom</b> <i>window who</i></p>
|
||
|
||
<dt><br>Если аргумент <i>who</i> задан, он должен иметь
|
||
одно из двух значений <b>program</b> или <b>user</b> (или
|
||
произвольное сокращение от одного из них). Оно определяет, будет
|
||
ли размещение окна определяться программой или пользователем.
|
||
Многие менеджеры окон игнорируют запрошенное программой начальное
|
||
размещение окна и требуют от пользователя разместить его вручную.
|
||
Если задано значение <b>user</b>, менеджер окон не требует этого
|
||
от пользователя. Если аргумент <i>who</i> задан как пустая
|
||
строка, текущая установка отменяется.<br>
|
||
Если аргумент <i>who</i> задан, команда возвращает пустую строку.
|
||
В противном случае команда возвращает установленное ранее
|
||
значение или пустую строку, если значение не было установлено.
|
||
Большинство менеджеров окон считают, что если .источник. не
|
||
задан, это то же самое, что <b>program</b>. Tk автоматически
|
||
устанавливает значение <b>user</b> при выполнении команды <b>wm
|
||
geometry</b>, если ранее не было установлено явно значение
|
||
<b>program</b><b>.</b></dt>
|
||
|
||
<dt><br><b>wm protocol</b> <i>window name command</i></dt>
|
||
|
||
<dt><br>Эта команда используется для организации
|
||
обработки сообщений (протоколов) менеджера окон, таких как
|
||
<b>WM_DELETE_WINDOW</b>. Аргумент name, если он задан, должен
|
||
быть именем элемента (атома) протокола менеджера окон. Если
|
||
заданы оба аргумента <i>name</i> и <i>command</i>, команда
|
||
<i>command</i> ассоциируется с протоколом <i>name</i>. Значение
|
||
<i>name</i> добавляется к свойству окна <b>WM_PROTOCOLS,</b>
|
||
чтобы указывать менеджеру окон, что приложение имеет обработчика
|
||
соответствующего сообщения, и какая команда должна быть выполнена
|
||
впоследствии, когда менеджер окон пошлет клиентской программе
|
||
соответствующее сообщение. В этом случае команда возвращает
|
||
пустую строку.
|
||
<br>Если аргумент <i>name</i> задан, а <i>command</i>
|
||
нет, будет возвращена команда, ассоциированная с данным
|
||
протоколом или пустая строка, если такой команды нет. Если
|
||
<i>command</i> определена как пустая строка, текущий обработчик
|
||
соответствующего события будет отменен, а имя протокола будет
|
||
удалено из свойства <b>PROTOCOLS</b> окна window. Команда
|
||
возвратит пустую строку.
|
||
<br>И наконец, если ни <i>name</i>, ни <i>command</i> не заданы,
|
||
команда возвратит список протоколов, для которых заданы
|
||
обработчики событий для данного окна.</dt>
|
||
|
||
<dt><br>Tk всегда определяет обработчик событий для протокола
|
||
<b>WM_DELETE_WINDOW</b>, даже если он не был задан с помощью
|
||
команды <b>wm protocol</b>. Если обработчик события не был задан
|
||
явно, то, когда поступает сообщение <b>WM_DELETE_WINDOW</b>, Tk
|
||
удаляет окно, для которого было получено это сообщение.</dt>
|
||
|
||
<dt><br><b>wm resizable</b> <i>window width height</i></dt>
|
||
|
||
<dt><br>Эта команда управляет возможностью пользователя
|
||
интерактивно изменять размеры окна. Если аргументы width и
|
||
<i>height</i> заданы, они должны быть булевыми величинами,
|
||
определяющими, может ли пользователь изменять в интерактивном
|
||
режиме ширину и высоту окна соответственно. Команда при этом
|
||
возвращает пустую строку. Если аргументы <i>width</i> и
|
||
<i>height</i> отсутствуют, команда возвращает список из двух
|
||
элементов, принимающих значение .0. или .1. и указывающих, может
|
||
ли пользователь изменять высоту и ширину окна соответственно. По
|
||
умолчанию пользователь может изменять размеры окна в обоих направлениях.
|
||
<p>Если изменение размеров окна пользователем запрещено, то либо
|
||
сохраняются те размеры окна, которые были получены в результате
|
||
последнего выполненного пользователем изменения размеров, либо
|
||
размеры окна устанавливаются с помощью команды <b>wm geometry</b>.
|
||
Если этих действий не было, используются размеры
|
||
окна, определяемые размерами составляющих его виджетов.
|
||
</dt>
|
||
|
||
<dt><br><b>wm sizefrom</b> <i>window ?who?</i></dt>
|
||
|
||
<dt><br>Если аргумент <i>who</i> задан, он должен иметь
|
||
одно из двух значений <b>program</b> или <b>user</b> (или
|
||
произвольное сокращение от одного из них). Оно определяет, будет
|
||
ли размер окна определяться программой или пользователем. Многие
|
||
менеджеры окон игнорируют запрошенный программой начальный размер
|
||
окна и требуют от пользователя определить его размер вручную.
|
||
Если задано значение user, менеджер окон не требует этого от
|
||
пользователя. Если аргумент <i>who</i> задан как пустая строка,
|
||
текущая установка отменяется.
|
||
<br>Если аргумент <i>who</i> задан, команда возвращает пустую
|
||
строку. В противном случае команда возвращает установленное ранее
|
||
значение; если значение не было установлено, команда возвращает
|
||
пустую строку. Большинство менеджеров окон считают, что если
|
||
.источник. не задан, это то же самое, что
|
||
<b>program</b>.
|
||
</dt>
|
||
|
||
<dt><br><b>wm state</b> <i>window</i></dt>
|
||
|
||
<dt><br>Команда возвращает текущее состояние окна:<br>
|
||
<b>normal</b><b>, iconic, withdrawn</b> или <b>icon</b>. Разница
|
||
между <b>iconic</b> и <b>icon</b> в том, что <b>iconic</b>
|
||
используется для свернутого окна (например, с помощью команды
|
||
<b>wm iconify</b> ), а <b>icon</b> для окна, которое используется
|
||
в качестве иконки для другого окна (с помощью команды <b>wm iconwindow</b>).
|
||
</dt>
|
||
|
||
<dt><br><b>wm title</b> <i>window string</i><dt>
|
||
|
||
<dt><br>Если аргумент <i>string</i> определен, он
|
||
передается менеджеру окон для использования в качестве имени
|
||
(титула) окна, которое менеджер окон высвечивает на рамке окна. В
|
||
этом случае команда возвращает рустую строку. Если аргумент
|
||
<i>string</i> не задан, команда возвращает ранее установленный
|
||
заголовок. По умолчанию титул окна совпадает с его полным именем как виджета.
|
||
</dt>
|
||
|
||
<dt><br><b>wm transient</b> <i>window master</i></dt>
|
||
|
||
<dt><br>Если аргумент <i>master</i> задан, команда
|
||
передает менеджеру окон информацию о том, что окно <i>window</i>
|
||
является временным окном (например, выпадающим меню), работающим
|
||
под управлением master-окна (где <i>master</i> полное имя
|
||
toplevel-окна). Некоторые менеджеры окон используют эту
|
||
информацию для того, чтобы управлять таким окном специальным
|
||
образом. Если аргумент <i>master</i> представляет собой пустую
|
||
строку, окно перестает быть временным окном.
|
||
<br>Если аргумент <i>master</i> задан, команда возвращает пустую
|
||
строку. В противном случае она возвращает имя управляющего окна
|
||
или пустую строку, если окно <i>window</i> не является временным.
|
||
</dt>
|
||
|
||
<dt><br><b>wm withdraw</b> <i>window</i></dt>
|
||
|
||
<dt><br>При выполнении команды окно <i>window</i>
|
||
удаляется с экрана. Информация о нем удаляется из менеджера окон.
|
||
Если окно не присутствовало на экране ранее, оно не появится на
|
||
экране при создании. Но не все менеджеры окон знают, как работать с такими окнами!
|
||
</dt>
|
||
|
||
<dt><br><b><i>Замечание.</i></b> Иногда оказывается необходимым удалить
|
||
окно с помощью команды <b>wm withdraw</b>, а затем возвратить его
|
||
обратно на экран (например, с помощью команды <b>wm deiconify</b>), чтобы менеджер окон учитывал некоторые его атрибуты, например, группу.
|
||
</dt>
|
||
</dl>
|
||
|
||
<p><a name=Wm УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ></a><b>УПРАВЛЕНИЕ ГЕОМЕТРИЕЙ</b>
|
||
|
||
<p>По умолчанию toplevel-окна при появлении на
|
||
экране имеют размеры, определяемые размерами составляющих его
|
||
виджетов (.естественные. размеры). Если изменяются размеры или
|
||
состав виджетов, то изменяется и размер toplevel-окна. Для
|
||
toplevel-окна размеры, отличные от .естественных., могут быть
|
||
заданы двумя способами. Первый пользователь может изменить
|
||
размеры окна вручную, используя стандартные механизмы менеджера
|
||
окон. Второй приложение может запросить изменение размеров окна с
|
||
помощью команды <b>wm geometry</b>. Оба зти способа
|
||
обрабатываются в Tk единообразно. Размеры окна изменяются на
|
||
новые, отличные от .естественных.. Чтобы вернуть .естественные.
|
||
размеры окна, нужно выполнить команду <b>wm geometry</b> с пустой
|
||
строкой в качестве аргумента, задающего размеры и размещение окна.
|
||
|
||
<p>Обычно размеры окна могут изменяться произвольно в диапазоне
|
||
от 1 пикселя до размеров экрана. Однако, с помощью команд <b>wm
|
||
minsize</b> и <b>wm maxsize</b> можно изменить область
|
||
возможных размеров окна. Эти ограничения будут использоваться при
|
||
всех способах изменения размеров окна, в том числе и при ручном
|
||
изменении, и при изменении размеров и состава его виджетов,
|
||
приводящем к изменению его .естественных. размеров. С помощью
|
||
команды <b>wm resizable</b> можно полностью запретить изменение
|
||
размеров окна каким-либо способом в одном или в обоих направлениях.</p>
|
||
|
||
|
||
<p><a name=УПРАВЛЕНИЕ ОКНАМИ С СЕТКОЙ></a><b>УПРАВЛЕНИЕ ОКНАМИ С СЕТКОЙ</b>
|
||
|
||
<p>Окна с сеткой используются, если один из виджетов
|
||
окна имеет ограниченное множество .разумных. размеров. Например,
|
||
в текстовом редакторе, где полосы прокрутки, меню и т. д. имеют
|
||
фиксированный размер, а поле редактирования текста может
|
||
содержать произвольное число строк или букв в строке. В этом
|
||
случае желательно дать пользователю возможность устанавливать
|
||
непосредственно число строк или букв в строке при изменении
|
||
размеров окна как вручную, так и с помощью команды <b>wm
|
||
geometry</b>. Как в случае с текстом, так и в других аналогичных,
|
||
.разумным. является не всякий размер окна в пикселях, а только
|
||
размеры, соответствующие целому числу строк или букв в строке.
|
||
|
||
<p>Введение сетки обеспечивает механизм для реализации этих
|
||
требований. Tk (и менеджер окон) предполагают существование сетки
|
||
в окне, и что .разумными. являются только размеры, выраженные в
|
||
целых шагах сетки, а не в произвольном числе пикселей. Обычно
|
||
сетка устанавливается с помощью опции <b>setGrid</b> для
|
||
соответствующего виджета. Она может также устанавливаться с
|
||
помощью команды <b>wm grid</b>. В любом случае с помощью виджета
|
||
или кода приложения определяются размеры окна в пикселях,
|
||
соответствующие целым размерам в шагах сетки. Чтобы отменить
|
||
сетку, нужно выполнить команду <b>wm grid</b> с пустой строкой, задающей сетку.</p>
|
||
|
||
<p>Если сетка задана, все определения размеров в командах
|
||
<b>wm minsize</b>, <b>wm maxsize</b> и <b>wm geometry</b>
|
||
считаются заданными в шагах сетки, а не в пикселях. Ручное
|
||
изменение размеров окна также производится в целых шагах сетки.</p>
|
||
|
||
<p><a name=ОШИБКИ></a><b>ОШИБКИ</b>
|
||
|
||
<p>Как оказалось, большинство существующих менеджеров окон имеют некоторые ошибки, которые проявляются при выполнении команды <b>wm</b>. Например, некоторые изменения не производятся в окне, если оно активно. Окно должно быть выведено с экрана и возвращено обратно, чтобы изменения выполнились.
|
||
|
||
<p><a name=ПРИМЕР></a><b>ПРИМЕР</b>
|
||
<dl>
|
||
<dt><b>wm geometry</b> <i>. 750x550+0+0</i> - устанавливает размер окна</dt>
|
||
<dt><b>wm title</b> <i>. Tcl/Tk Project Manager</i> - заголовок окна</dt>
|
||
<dt><b>wm iconname</b> <i>. Tcl/Tk Project Manager</i> - подпись для икнонки</dt>
|
||
<dt><b>wm protocol</b> <i>. wm_DELETE_WINDOW Quit</i> - процедура выполняема по закрытии окна</dt>
|
||
<dt><b>wm overrideredirect</b> <i>. 0</i></dt>
|
||
<dt><b>wm positionfrom</b> <i>. user</i> - установка позиции окна</dt>
|
||
<dt><b>wm resizable</b> <i>. 0 0</i> - установка атрибутов окна (в данном случае не изменяемое)</dt>
|
||
<dl>
|
||
</body>
|
||
</html>
|
||
|
||
|
||
|
||
|