Менеджер геометрии Tkinter Place в Python с пояснениями на примерах
Менеджер геометрии Tkinter Place точно позиционирует виджеты в контейнере с использованием системы координат(x, y).
- Что такое Tkinter Place Geometry Manager?
- 1) Абсолютное позиционирование
- 2) Относительное позиционирование
- 3) Ширина и высота
- 4) Anchor
- Примеры менеджера геометрии Tkinter Place
- 1) Пример абсолютного позиционирования
- 2) Пример относительного позиционирования
- 3) Использование точки привязки
Что такое Tkinter Place Geometry Manager?
Менеджер геометрии Tkinter Place в Python позволяет указать точное размещение виджета, используя либо абсолютное, либо относительное позиционирование.
Управление геометрией размещения дает вам точный контроль над размещением виджетов, позволяя:
- Указывать координаты(x, y).
- Использовать относительное позиционирование на основе опорных точек.
Чтобы использовать менеджер геометрии place, вызовите метод place() виджета следующим образом:
widget.place(**options)
1) Абсолютное позиционирование
При абсолютном позиционировании вы указываете точные координаты x и y виджета с помощью параметров x и y:
widget.place(x=50, y=50)
2) Относительное позиционирование
При относительном позиционировании вы размещаете виджет, используя относительные координаты с использованием параметров relx и rely:
Например, следующий код помещает виджет в центр его родителя:
widget.place(relx=0.5, rely=0.5, anchor=CENTER)
3) Ширина и высота
Tkinter Place позволяет вам задать ширину и высоту виджета с помощью параметров width и height:
widget.place(width=120, height=60)
В качестве альтернативы можно использовать относительные размеры относительно родительского контейнера. Например, следующий код устанавливает ширину и высоту виджета на 50% от размеров родительского контейнера:
widget.place(relwidth=0.5, relheight=0.5)
relwidth и relheight имеют значение числа с плавающей точкой от 0,0 до 1,0. Это значение представляет собой часть ширины и высоты родительского контейнера.
4) Anchor
Параметр привязки определяет, какая часть виджета будет расположена в заданных координатах.
Параметр Anchor принимает такие значения, как:
- ‘n’, ‘ne’, ‘e’, ‘se’, ‘sw’, ‘w’, ‘nw’: эти константы представляют основные и интеркардинальные направления(север, северо-восток, восток, юго-восток, юг, юго-запад, запад, северо-запад).
- ‘center’: это значение указывает методу place() расположить центр виджета в указанных координатах.
Значение anchor по умолчанию — «nw», что указывает методу place() разместить верхний левый угол виджета в указанных координатах.
Например, следующий код помещает виджет в центр виджета-контейнера:
widget.place(relx=0.5, rely=0.5, anchor='center')
Примеры менеджера геометрии Tkinter Place
Давайте рассмотрим несколько примеров использования менеджера геометрии Tkinter place.
1) Пример абсолютного позиционирования
В следующем примере менеджер геометрии place используется для размещения метки в точке(0,0) шириной 60 и высотой 120:
import tkinter as tk root = tk.Tk() root.title('Tkinter Place Geometry Manager') root.geometry("600x400") label1 = tk.Label(master=root, text="Place",bg='red',fg='white') label1.place(x=0,y=0,width=120, height=60) root.mainloop()
Выход:
2) Пример относительного позиционирования
Следующая программа размещает виджет Label так, чтобы его верхний левый угол находился в центре окна:
import tkinter as tk root = tk.Tk() root.title('Tkinter Place Geometry Manager') root.geometry("600x400") label1 = tk.Label(master=root, text="Place",bg='red',fg='white') label1.place(relx=0.5, rely=0.5, width=100, height=50) root.mainloop()
Выход:
3) Использование точки привязки
В следующем примере центральная точка виджета «Метка» размещается в центре окна:
import tkinter as tk root = tk.Tk() root.title('Tkinter Place Geometry Manager') root.geometry("600x400") label1 = tk.Label(master=root, text="Place",bg='red',fg='white') label1.place(relx=0.5, rely=0.5, width=100, height=50, anchor=tk.CENTER) root.mainloop()
Выход: