tkinter
Tkinter Geometry Managers
Поиск…
Вступление
Для размещения виджетов есть три менеджера геометрии: pack()
, grid()
и place()
.
упаковка ()
Менеджер pack()
организует виджеты в блоках перед их размещением в родительском виджете. Он использует параметры fill
, expand
и side
.
Синтаксис
widget.pack(option)
заполнить
Определяет, поддерживает ли виджет необходимое минимальное пространство или занимает дополнительное пространство, выделенное для него. Атрибуты: NONE (по умолчанию), X (заполнение по горизонтали), Y (заполнение по вертикали) или BOTH (заполнение как по горизонтали, так и по вертикали).
расширять
Когда установлено значение YES, виджет расширяется, чтобы заполнить любое пространство, которое не используется в родительском элементе виджета. Атрибуты: ДА, НЕТ.
Боковая сторона
Определяет, на какую сторону родителя виджета он упаковывает. Атрибуты: TOP (по умолчанию), BOTTOM, LEFT или RIGHT.
пример
from tkinter import *
root = Tk()
btn_fill = Button(root, text="Button")
btn_fill.pack(fill=X)
btn_expand = Button(root, text="Button")
btn_expand.pack(expand=YES)
btn_side = Button(root, text="Button")
btn_side.pack(side=RIGHT)
root.mainloop()
Результат
Сетка ()
Менеджер геометрии grid()
организует виджетов в виде таблицы в родительском виджетах. Главный виджет разделяется на строки и столбцы, и каждая часть таблицы может содержать виджет. Он использует column
, columnspan
, ipadx
, ipady
, padx
, pady
, row
, rowspan
и sticky
.
Синтаксис
widget.grid(options)
колонка
Столбец для размещения виджета. Столбец по умолчанию - 0, который является самым левым столбцом.
ColumnSpan
Сколько занимает виджет столбцов. По умолчанию используется значение 1.
Ipadx
Сколько пикселей пикселя для виджета горизонтально внутри границ виджета.
Ipady
Сколько пикселей пиксели для виджета вертикально внутри границ виджета.
Padx
Сколько пикселей пиксели для виджета горизонтально за пределами границ виджета.
Pady
Сколько пикселей пиксели для виджета вертикально вне границ виджета.
Строка
Строка для размещения виджета. Строка по умолчанию - 0, которая является самым верхним столбцом.
RowSpan
Сколько строк занимает виджет. По умолчанию используется значение 1.
липкий
Когда виджет меньше ячейки, sticky
используется для указания сторон и углов ячейки, к которой привязан виджет. Направление определяется направлениями компаса: N, E, S, W, NE, NW, SE и SW и ноль. Это может быть конкатенация строк, например, NESW заставляет виджет занимать всю область ячейки.
пример
from tkinter import *
root = Tk()
btn_column = Button(root, text="I'm in column 3")
btn_column.grid(column=3)
btn_columnspan = Button(root, text="I have a columnspan of 3")
btn_columnspan.grid(columnspan=3)
btn_ipadx = Button(root, text="ipadx of 4")
btn_ipadx.grid(ipadx=4)
btn_ipady = Button(root, text="ipady of 4")
btn_ipady.grid(ipady=4)
btn_padx = Button(root, text="padx of 4")
btn_padx.grid(padx=4)
btn_pady = Button(root, text="pady of 4")
btn_pady.grid(pady=4)
btn_row = Button(root, text="I'm in row 2")
btn_row.grid(row=2)
btn_rowspan = Button(root, text="Rowspan of 2")
btn_rowspan.grid(rowspan=2)
btn_sticky = Button(root, text="I'm stuck to north-east")
btn_sticky.grid(sticky=NE)
root.mainloop()
Результат
место()
Менеджер place()
организует виджетов, помещая их в определенную позицию в родительском виджетах. Этот менеджер геометрии использует параметры anchor
, bordermode
, height
, width
, relheight
, relwidth
, relx
, rely
, x
и y
.
анкер
Указывает, к чему привязан виджет. Параметры - это направления компаса: N, E, S, W, NE, NW, SE или SW, которые относятся к сторонам и углам родительского виджета. По умолчанию используется NW (верхний левый угол виджета)
Bordermode
У Bordermode есть два варианта: INSIDE
, что указывает на то, что другие опции относятся к родительскому внутри, (игнорируя границы родителя) и OUTSIDE
, что является противоположным.
Рост
Укажите высоту виджета в пикселях.
ширина
Укажите ширину виджета в пикселях.
Relheight
Высота как float между 0.0 и 1.0, как часть высоты родительского виджета.
Relwidth
Ширина как float между 0.0 и 1.0, как часть ширины родительского виджета.
Relx
Горизонтальное смещение как float между 0.0 и 1.0, как часть ширины родительского виджета.
полагаться
Вертикальное смещение как float между 0.0 и 1.0, как часть высоты родительского виджета.
Икс
Горизонтальное смещение в пикселях.
Y
Вертикальное смещение в пикселях.
пример
from tkinter import *
root = Tk()
root.geometry("500x500")
btn_height = Button(root, text="50px high")
btn_height.place(height=50, x=200, y=200)
btn_width = Button(root, text="60px wide")
btn_width.place(width=60, x=300, y=300)
btn_relheight = Button(root, text="Relheight of 0.6")
btn_relheight.place(relheight=0.6)
btn_relwidth= Button(root, text="Relwidth of 0.2")
btn_relwidth.place(relwidth=0.2)
btn_relx=Button(root, text="Relx of 0.3")
btn_relx.place(relx=0.3)
btn_rely=Button(root, text="Rely of 0.7")
btn_rely.place(rely=0.7)
btn_x=Button(root, text="X = 400px")
btn_x.place(x=400)
btn_y=Button(root, text="Y = 321")
btn_y.place(y=321)
root.mainloop()
Результат