You are currently viewing Метод Python | place() в Tkinter

Метод Python | place() в Tkinter

Менеджер геометрии места-самый простой из трех менеджеров общей геометрии, представленных в Tkinter. Это позволяет явно задать положение и размер окна либо в абсолютном выражении, либо относительно другого окна.
Вы можете получить доступ к менеджеру мест с помощью place()метода, доступного для всех стандартных виджетов.

Обычно это не очень хорошая идея использовать place()для обычных макетов окон и диалоговых окон; это просто большая работа, чтобы все работало так, как должно. Используйте менеджеров pack()или grid()для таких целей.

Синтаксис:

widget.place(relx = 0.5, rely = 0.5, anchor = CENTER)

Примечание: place() метод может быть использован с grid() метод, а также с pack() метод.

Код № 1:

# Importing tkinter module
from tkinter import * from tkinter.ttk import *

# creating Tk window
master = Tk()

# setting geometry of tk window
master.geometry("200x200")

# button widget
b1 = Button(master, text = "Click me !")
b1.place(relx = 1, x =-2, y = 2, anchor = NE)

# label widget
l = Label(master, text = "I'm a Label")
l.place(anchor = NW)

# button widget
b2 = Button(master, text = "GFG")
b2.place(relx = 0.5, rely = 0.5, anchor = CENTER)

# infinite loop which is required to
# run tkinter program infinitely
# until an interrupt occurs
mainloop()

Выход:

Когда мы используем pack()или grid()менеджеры, тогда очень легко поместить два разных виджета отдельно друг от друга, но поместить один из них внутри другого немного сложно. Но этого легко можно достичь с помощью place()метода.

В методе place() мы можем использовать опцию in_, чтобы поместить один виджет в другой.

Код № 2:

# Importing tkinter module
from tkinter import * from tkinter.ttk import *

# creating Tk window
master = Tk()

# setting geometry of tk window
master.geometry("200x200")

# button widget
b2 = Button(master, text = "GFG")
b2.pack(fill = X, expand = True, ipady = 10)

# button widget
b1 = Button(master, text = "Click me !")

# This is where b1 is placed inside b2 with in_ option
b1.place(in_= b2, relx = 0.5, rely = 0.5, anchor = CENTER)

# label widget
l = Label(master, text = "I'm a Label")
l.place(anchor = NW)

# infinite loop which is required to
# run tkinter program infinitely
# until an interrupt occurs
mainloop()

Вывод: 

На изображениях ниже обратите внимание, что одна кнопка расположена внутри другой.