Здравствуйте подписчики, и гости моего канала. Дальше изучаю модуль Tkinter для создания графического интерфейса с помощью языка программирования Python.
Предыдущие части:
Tkinter часть 1 начало;
Tkinter часть 2 Button кнопки;
Tkinter часть 3 Label метка;
Tkinter часть 4 Entry однострочное текстовое поле;
Tkinter часть 5 Упаковщик pack();
Tkinter часть 6 Метод grid().
Сегодня разберем последний третий метод размещения виджетов в пространстве, метод «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).
При растягивании окна кнопки сохраняют свой размер и расположение, строго привязанное по координатам.
Рассмотрим метод размещения виджетов по относительной позиции. За этот метод отвечают параметры «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.