Менеджер геометрии Tkinter Place в Python с пояснениями на примерах

Менеджер геометрии Tkinter Place точно позиционирует виджеты в контейнере с использованием системы координат(x, y).

Содержание

Что такое 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)

tkinter place абсолютное позиционирование

2) Относительное позиционирование

При относительном позиционировании вы размещаете виджет, используя относительные координаты с использованием параметров relx и rely:

tkinter place относительное позиционирование

Например, следующий код помещает виджет в центр его родителя:

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()

Выход:

Пример с tkinter place - абсолютное позиционирование

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()

Выход:

Пример с tkinter place - относительное позиционирование

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()

Выход:

Пример с tkinter place - размещение метки по центру

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *