2018-02-05 17:22:04 +03:00
<!DOCTYPE html PUBLIC -//W3C//DTD HTML 3.2//EN>
2015-10-19 13:27:31 +03:00
< html >
< head >
< title > Wm< / title >
< / head >
< body >
< center > < h1 > Wm< / h1 > < / center >
2018-02-05 17:22:04 +03:00
< p > Команда взаимодействия с менеджером окон.< / p >
2015-10-19 13:27:31 +03:00
< p > < ul >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< / ul >
2018-02-05 17:22:04 +03:00
< p > < a name = СИНТАКСИС > < / a > < b > СИНТАКСИС< / b >
2015-10-19 13:27:31 +03:00
< dl >
< dt > < b > wm< / b > < i > option window ?args?< / i > < / dt >
< / dl >
2018-02-05 17:22:04 +03:00
< p > < a name = ОПИСАНИЕ > < / a > < b > ОПИСАНИЕ< / b >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
Команда < b > wm< / b > предназначена для
взаимодействия с менеджером окон и обеспечивает таким образом
управление такими атрибутами окон, как заголовок, размеры и
размещение, возможность изменять размер. Команда имеет несколько
форм в зависимости от используемых опций. В о всех формах команда
предполагает наличие по крайней мере одного аргумента имени toplevel окна.
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< p > Ниже перечислены возможные формы команды.
2015-10-19 13:27:31 +03:00
< dl >
< dt > < b > wm aspect< / b > < i > window minNumer minDenom maxNumer maxDenom< / i > < / dt >
2018-02-05 17:22:04 +03:00
< 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 >
(если ограничения не заданы, возвращается пустая строка).
2015-10-19 13:27:31 +03:00
< / dt >
< dt > < p > < b > wm client< / b > < i > window name< / i > < / dt >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm colormapwindows< / b > < i > window ?windowList?< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < p > Эта команда используется для управления свойством
< b > WM_COLORMAP_WINDOWS< / b > , которое обеспечивает менеджер окон
информацией о б окнах, имеющих собственную палитру. Если аргумент
< i > windowList< / i > не задан, команда возвращает список окон,
имеющих собственную палитру. Если аргумент задан, он представляет
собой список полных имен окон. Команда изменяет старое значение
свойства на новое и возвращает пустую строку. Список окон
перечисляет внутренние окна, палитра которых отличается от
палитры их логических предков. Порядок, в котором перечислены
окна, указывает порядок, в котором менеджер окон просматривает
окна, пытаясь разместить новые цвета в палитре. Н е указанные в
списке окна обрабатываются в последнюю очередь. Если команда не
использовалась, Tk автоматически устанавливает свойство для
каждого toplevel окна. В списке перечисляются все е г о внутренние
окна, имеющие собственную палитру, в случайном порядке. В конце
списка указывается само toplevel окно. Более подробно свойство
< b > WM_COLORMAP_WINDOWS< / b > описано в (1).< / dt >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm command< / b > < i > window value< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < p > Если аргумент < i > value< / i > задан, команда
сохраняет е г о значение в свойстве окна < b > WM_COMMAND< / b > , которое
используется менеджером окон или менеджером сессий. В этом случае
команда возвращает пустую строку. Аргумент < i > value< / i > должен
содержать список, элементы которого являются словами команды,
используемой для запуска приложения (см. также < b > wmuse< / b > < b > ).< / b > < / dt >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dt > < p > Если аргумент < i > value< / i > не задан, команда возвращает последнее
установленное ранее значение свойства. Если аргумент < i > name< / i >
определен как пустая строка, свойство окна < b > WM_COMMAND< / b >
удаляется.< / dt >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm deiconify< / b > < i > window< / i > < / p > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < p > Заставляет окно появиться на экране в нормальном
виде (а не в виде иконки, например,). Если окно ранее не
появлялось на экране, выполнение команды не приведет к е г о
появлению, но она гарантирует, что если в будущем окно появится,
оно появится в нормальном виде. Команда возвращает пустую
строку.< / dt >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm focusmodel < i > < / i > < / b > < i > window< / i > < b > active< / b > |< b > passive< / b > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < p > Если тип фокуса для (< b > active< / b > или
< b > passive< / b > ) окна указан в команде, он определяет какой тип
фокуса будет использоваться. В этом случае команда возвращает
пустую строку. Если тип фокуса не указан, команда возвращает
текущее значение типа. Активный тип фокуса означает, что окно
запрашивает фокус ввода с е б е или своим потомкам, даже если в этот
момент фокус находится в другом приложении. Пассивный фокус
означает, что окно не запрашивает фокус, а получает е г о от
менеджера окон. Однако, после того, как окно или один из е г о
потомков получил фокус, приложение может передать е г о другому
потомку окна. По умолчанию устанавливает пассивный фокус.< / dt >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm < i > < / i > frame< / b > < i > window< / i > < dt >
2018-02-05 17:22:04 +03:00
< dt > < p > Если окно заключено менеджером окон в
декоративную рамку, команда возвращает идентификатор самой
внешней рамки, которая содержит окно (окно, являющееся потомком
корневого окна или виртуального корневого окна). Вид
идентификатора зависит от платформы. Если окно не заключено в
рамку, возвращается идентификатор окна, вид которого также
зависит от платформы.< / t >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm geometry< / b > < i > window newGeometry< / i > < / dt >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm grid< / b > < i > window baseWidth baseHeight widthInc heightInc< / i > < / dt >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm group< / b > < i > window pathName< / i > < / dt >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm iconbitmap< / b > < i > window bitmap< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < p > Если аргумент < i > bitmap< / i > задан, он определяет
имя растрового образа, которое передается менеджеру окон для
использования в качестве иконки. Имя образа может быть задано в
одной из следующих форм:< / dt >
2015-10-19 13:27:31 +03:00
< dt >
2018-02-05 17:22:04 +03:00
< dd > @< i > ИмяФайла< / i > файл должен содержать описание растрового
рисунка в формате, соответствующем стандарту X11 или X10< / dd >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dd > < i > name< / i > имя образа типа < i > bitmap< / i > , ранее созданного в приложении.< / dd >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dd > Если аргумент < i > bitmap< / i > представляет собой пустую строку, отменяется использование ранее заданного образа.< / dd >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dd > Если аргумент < i > bitmap< / i > задан, команда возвращает пустую строку. В противном случае команда возвращает имя образа, используемого джля иконки, либо пустую строку, если образ не задан.< / dd >
2015-10-19 13:27:31 +03:00
< / dt >
< dt > < p > < b > wm iconify< / b > < i > window< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < p > Команда сворачивает указанное окно. Если окно еще не было размещено на экран, оно появится, когда это произойдет, в виде иконки.< / dt >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm iconmask< / b > < i > window bitmap< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < p > Если аргумент < i > bitmap< / i > задан, он определяет
имя растрового образа, которое передается менеджеру окон для
использования в качестве маски для иконки. Там, где маска имеет
значение .0., образ иконки не отображается; там, где маска имеет
значение .1., маска рисуется. Имя образа может быть задано в
одной из следующих форм:< / dt >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dt > < br > < i > @ИмяФайла< / i > файл должен содержать описание растрового рисунка в формате, соответствующем стандарту X11 или X10;< / dt >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dt > < br > < i > name< / i > имя образа типа < i > bitmap< / i > , ранее созданного в приложении.< / dt >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > bitmap< / i > представляет собой пустую строку, отменяется использование ранее заданной маски (это эквивалентно заданию маски из одних единиц).< / dt >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > bitmap< / i > задан, команда возвращает пустую строку. В противном случае команда возвращает имя образа, используемого для маски для данного окна, либо пустую строку, если маска не задана.< / dt >
2015-10-19 13:27:31 +03:00
< dt > < br > < b > wm iconname< / b > < i > window ?newName?< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > newName< / i > задан, он передается менеджеру окон для использования в качестве имени иконки для окна. В этом случае команда возвращает пустую строку. Если аргумент < i > newName< / i > не задан, команда возвращает текущее имя иконки для окна; если имя иконки не задано, команда возвращает пустую строку (в этом случае менеджер окон использует в качестве имени иконки имя окна, заданное с помощью команды < b > wmtitle< / b > < b > ).< / b > < / dt >
2015-10-19 13:27:31 +03:00
< dt > < br > < b > wm iconposition< / b > < i > window x y< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргументы < i > x< / i > и < i > y< / i > заданы, они
передаются менеджеру окон и используются как подсказка при
размещении иконки окна < i > window< / i > . В этом случае команда
возвращает пустую строку. Если < i > x< / i > и < i > y< / i > представляют
собой пустые строки, команда отменяет ранее определенную
подсказку для размещения иконки. Если аргументы < i > x< / i > и
< i > y< / i > не заданы, команда возвращает текущее значение подсказки
(или пустую строку, если она не задана).< / dt >
2015-10-19 13:27:31 +03:00
< dt > < br > < b > wm iconwindow< / b > < i > window pathName< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > pathName< / i > указан, он
определяет имя окна, которое используется в качестве иконки для
окна < i > window< / i > : кодгда окно < i > window< / i > свертывается,
появляется окно < i > pathName< / i > , которое используется в качестве
иконки. Когда окно < i > window< / i > разворачивается, окно
< i > pathName< / i > выводится с экрана. Если аргумент < i > pathName< / i >
представляет собой пустую строку, ранее определенное окно больше
не используется как иконка.< / dt >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > pathName< / i > указан, команда возвращает пустую
строку. В противном случае команда возвращает имя окна, ранее
заданного в качестве иконки, или пустую строку, если ранее оно не
было задано.< / dt >
< dt > < br > Нажатие на кнопку .Мыши. в окне-иконке не обрабатываются приложением, что позволяет обрабатывать эти события менеджеру окон.< / dt >
2015-10-19 13:27:31 +03:00
2018-02-05 17:22:04 +03:00
< dt > < br > Замечание. Н е все менеджеры окон позволяют использовать Tk-окно в качестве иконки.< / dt >
2015-10-19 13:27:31 +03:00
< dt > < br > < b > wm maxsize< / b > < i > window width height< / i > < / dt >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm minsize< / b > < i > window width height< / i > < /< dt > >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dt > < p > < b > wm overrideredirect< / b > < i > window boolean< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > boolean< / i > задан, он должен
быть булевой величиной. Е г о значение присваивается
< i > override-redirect< / i > флагу окна. Если аргумент не задан,
команда возвращает .1. или .0., в зависимости от того, установлен
ли флаг для < i > window< / i > .< br >
Установка флага приводит к тому, что окно не управляется
менеджером окон. В частности, окно не будет заключено в
декоративную рамку и пользователь не сможет изменять размеры и
положение окна, используя стандартные механизмы менеджера
окон.< / dt >
2015-10-19 13:27:31 +03:00
< p > < b > wm positionfrom< / b > < i > window who< / i > < / p >
2018-02-05 17:22:04 +03:00
< 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 > , если ранее не было установлено явно значение
2015-10-19 13:27:31 +03:00
< b > program< / b > < b > .< / b > < / dt >
< dt > < br > < b > wm protocol< / b > < i > window name command< / i > < / dt >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dt > < br > < b > wm resizable< / b > < i > window width height< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > Эта команда управляет возможностью пользователя
интерактивно изменять размеры окна. Если аргументы width и
< i > height< / i > заданы, они должны быть булевыми величинами,
определяющими, может ли пользователь изменять в интерактивном
режиме ширину и высоту окна соответственно. Команда при этом
возвращает пустую строку. Если аргументы < i > width< / i > и
< i > height< / i > отсутствуют, команда возвращает список из двух
элементов, принимающих значение .0. или .1. и указывающих, может
ли пользователь изменять высоту и ширину окна соответственно. По
умолчанию пользователь может изменять размеры окна в обоих направлениях.
< p > Если изменение размеров окна пользователем запрещено, то либо
сохраняются те размеры окна, которые были получены в результате
последнего выполненного пользователем изменения размеров, либо
размеры окна устанавливаются с помощью команды < b > wm geometry< / b > .
Если этих действий не было, используются размеры
окна, определяемые размерами составляющих е г о виджетов.
2015-10-19 13:27:31 +03:00
< / dt >
< dt > < br > < b > wm sizefrom< / b > < i > window ?who?< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > who< / i > задан, он должен иметь
одно из двух значений < b > program< / b > или < b > user< / b > (или
произвольное сокращение от одного из них). Оно определяет, будет
ли размер окна определяться программой или пользователем. Многие
менеджеры окон игнорируют запрошенный программой начальный размер
окна и требуют от пользователя определить е г о размер вручную.
Если задано значение user, менеджер окон не требует этого от
пользователя. Если аргумент < i > who< / i > задан как пустая строка,
текущая установка отменяется.
< br > Если аргумент < i > who< / i > задан, команда возвращает пустую
строку. В противном случае команда возвращает установленное ранее
значение; если значение не было установлено, команда возвращает
пустую строку. Большинство менеджеров окон считают, что если
.источник. не задан, это то же самое, что
2015-10-19 13:27:31 +03:00
< b > program< / b > .
< / dt >
< dt > < br > < b > wm state< / b > < i > window< / i > < / dt >
2018-02-05 17:22:04 +03:00
< 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 > ).
2015-10-19 13:27:31 +03:00
< / dt >
< dt > < br > < b > wm title< / b > < i > window string< / i > < dt >
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > string< / i > определен, он
передается менеджеру окон для использования в качестве имени
(титула) окна, которое менеджер окон высвечивает на рамке окна. В
этом случае команда возвращает рустую строку. Если аргумент
< i > string< / i > не задан, команда возвращает ранее установленный
заголовок. По умолчанию титул окна совпадает с е г о полным именем как виджета.
2015-10-19 13:27:31 +03:00
< / dt >
< dt > < br > < b > wm transient< / b > < i > window master< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > Если аргумент < i > master< / i > задан, команда
передает менеджеру окон информацию о том, что окно < i > window< / i >
является временным окном (например, выпадающим меню), работающим
под управлением master-окна (где < i > master< / i > полное имя
toplevel-окна). Некоторые менеджеры окон используют эту
информацию для того, чтобы управлять таким окном специальным
образом. Если аргумент < i > master< / i > представляет собой пустую
строку, окно перестает быть временным окном.
< br > Если аргумент < i > master< / i > задан, команда возвращает пустую
строку. В противном случае она возвращает имя управляющего окна
или пустую строку, если окно < i > window< / i > не является временным.
2015-10-19 13:27:31 +03:00
< / dt >
< dt > < br > < b > wm withdraw< / b > < i > window< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > При выполнении команды окно < i > window< / i >
удаляется с экрана. Информация о нем удаляется из менеджера окон.
Если окно не присутствовало на экране ранее, оно не появится на
экране при создании. Н о не все менеджеры окон знают, как работать с такими окнами!
2015-10-19 13:27:31 +03:00
< / dt >
2018-02-05 17:22:04 +03:00
< dt > < br > < b > < i > Замечание.< / i > < / b > Иногда оказывается необходимым удалить
окно с помощью команды < b > wm withdraw< / b > , а затем возвратить е г о
обратно на экран (например, с помощью команды < b > wm deiconify< / b > ), чтобы менеджер окон учитывал некоторые е г о атрибуты, например, группу.
2015-10-19 13:27:31 +03:00
< / dt >
< / dl >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dl >
2018-02-05 17:22:04 +03:00
< 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 >
2015-10-19 13:27:31 +03:00
< dt > < b > wm overrideredirect< / b > < i > . 0< / i > < / dt >
2018-02-05 17:22:04 +03:00
< dt > < b > wm positionfrom< / b > < i > . user< / i > - установка позиции окна< / dt >
< dt > < b > wm resizable< / b > < i > . 0 0< / i > - установка атрибутов окна (в данном случае не изменяемое)< / dt >
2015-10-19 13:27:31 +03:00
< dl >
< / body >
< / html >
2018-02-05 17:22:04 +03:00