Найти в Дзене
SamAlex

Tkinter часть 7. Метод place().

Метод place() позволяет размещать виджеты по координатам как в абсолютных так и относительных значениях
Оглавление

Здравствуйте подписчики, и гости моего канала. Дальше изучаю модуль Tkinter для создания графического интерфейса с помощью языка программирования Python.

Предыдущие части:

Tkinter часть 1 начало;
Tkinter часть 2 Button кнопки;
Tkinter часть 3 Label метка;
Tkinter часть 4 Entry однострочное текстовое поле;
Tkinter часть 5 Упаковщик pack();
Tkinter часть 6 Метод grid().
Tkinter Python GUI
Tkinter Python GUI

Сегодня разберем последний третий метод размещения виджетов в пространстве, метод «place()». Этот метод позволяет размещать виджеты в абсолютных значениях (в пикселях, по координатам «X» и «Y») и в относительных (в долях от окна в котором его размещают). При размещении виджетов методом «place()» можно задавать их размер в абсолютных размерах (в пикселях) и относительных (долях от родительского окна).

У метода «place()» есть параметр «anchor» который определяет «точку» на виджете для которой задаются координаты. По умолчанию это верхний левый угол. Может принимать следующие значения «N», «NE», «E», «SE», «S»,«SW», «W», «NW», «CENTER».

Точки на виджетах
Точки на виджетах

Создадим девять кнопок и в параметры абсолютной позиции передадим следующие значения «X» и «Y»:

Первой (x=0, y=0), второй (x=80, y=80), третьей (x=160, y=160), четвертой (x=240, y=240), пятой (x=320, y=320), шестой (x=0, y=320), седьмой (x=80, y=240), восьмой (x=240, y=80) и девятой (x=320, y=0).

Размещение кнопок методом place().
Размещение кнопок методом place().

При растягивании окна кнопки сохраняют свой размер и расположение, строго привязанное по координатам.

Кнопки привязаны по координатам
Кнопки привязаны по координатам

Рассмотрим метод размещения виджетов по относительной позиции. За этот метод отвечают параметры «relx» и «rely» они могут принимать значения от «0» до «1», где (0, 0) левый верхний угол, а (1, 1) правый нижний. Привяжем «ПЯТУЮ» и «ДЕВЯТУЮ» кнопки относительным методом.

«ПЯТОЙ» кнопке вместо параметров «x» и «y» передадим «relx» и «rely» со значениями (1, 1). Так как надо привязать ее в правый нижний угол. А так же передадим параметр «anchor» со значением «SE», что бы точка привязки нашего виджета была правый нижний угол. А «ДЕВЯТОЙ» кнопке передадим «relx» и «rely» со значениями (1, 0), а параметру «anchor» значение «NE».

Привязка кнопок относительно родительского окна
Привязка кнопок относительно родительского окна

Как видим кнопки остались на своих местах. Но если растянуть наше окно, то кнопки «ПЯТЬ» и «ДЕВЯТЬ» переместились согласно своей относительной привязке к родительскому окну.

Кнопки переместились согласно привязкам
Кнопки переместились согласно привязкам

Так же при размещении виджета можно передавать параметры «width» и «height» абсолютный размер виджета в пикселях. Если параметр не указывать размер виджета будет по умолчанию такой, какой размер был указан при создании. При растягивании окна размер виджета изменяться не будет.

А есть параметр «relwidth» и «relheight» которые отвечают за относительную ширину и высоту виджета в долях от родительского виджета. При растягивании окна размер виджетов тоже изменяется. Передадим «ТРЕТЬЕЙ» кнопке параметр «relwidth» и «relheight» со значениями «0,2; 0,2»

Добавили относительный размер кнопке
Добавили относительный размер кнопке

Пока все остается на своих местах, но стоит только растянуть окно, как «ТРЕТЬЯ» кнопка поменялась в своих размерах.

При растягивании окна кнопка увеличивается
При растягивании окна кнопка увеличивается

На мой взгляд метод «place()», наиболее удобный и гибкий в отличии от предыдущих методов «pack()» и «grid()».

А на этом все.

Спасибо за внимание.

Продолжение следует:

Tkinter часть 8 Canvas метод creat_line();

Tkinter. Часть 9. Canvas метод creat_polygon и метод creat_rectangle;

Tkinter. Часть 10. Canvas метод creat_oval и метод creat_arc.

Всегда актуальное МЕНЮ моего канала находится ТУТ!!!