=====Grid()=====
Этот упаковщик организует виджеты в виде таблицы в родительском виджете.
====Синтаксис====
widget.grid( grid_options )
Вот список возможных вариантов -
* **column** − Столбец для размещения виджета; по умолчанию 0 (крайний левый столбец).
* **columnspan** − Сколько столбцов виджетов занимает; по умолчанию 1.
* **ipadx, ipady** − Сколько пикселей для заполнения виджета, по горизонтали и вертикали, внутри границ виджета.
* **padx, pady** − Сколько пикселей для заполнения виджета, по горизонтали и вертикали, за пределами границ виджета.
* **row** − Строка для размещения виджета; по умолчанию первая строка, которая все еще пуста.
* **rowspan** − Сколько занимает строк widget; по умолчанию 1.
* **sticky** − Что делать, если ячейка больше виджета. По умолчанию при использовании sticky = '' виджет центрируется в своей ячейке. sticky может быть конкатенацией строк из нуля или более из N, E, S, W, NE, NW, SE и SW, направления компаса, указывающие стороны и углы ячейки, к которой привязан виджет.
====Примеры====
===Сетка 6x6:===
from tkinter import *
root = Tk()
b = 0
for r in range(6):
for c in range(6):
b = b + 1
Button(root, text = str(b), borderwidth = 1 ).grid(row = r,column = c)
root.mainloop()
{{ :python:оконное_приложение:tkinter:упаковщики:grid3.png?100 |}}
===Размещение кнопок по сетке:===
from tkinter import *
root = Tk()
root.title('lesson9')
root.iconbitmap('python.ico')
root.geometry('600x400')
f = Frame(root)
f.pack(pady=10)
btn_list = [
'7', '8', '9',
'4', '5', '6',
'1', '2', '3',
'0'
]
row = 0
col = 0
for i in btn_list:
if i == '0':
Button(f, text=i, padx=10, pady=4).grid(row=row, columnspan=3)
else:
Button(f, text=i, padx=10, pady=4).grid(row=row, column=col)
col +=1
if col == 3:
row +=1
col = 0
root.mainloop()
{{ :python:оконное_приложение:tkinter:упаковщики:grid1.png?400 |}}
===Окно регистрации:===
from tkinter import *
root = Tk()
user_l = Label(root, text="login:").grid(row=0, column=0, padx = 10, pady=10, sticky = W)
user_e = Entry(root).grid(row=0, column=1, columnspan=2, sticky = W+E,padx=10)
pas_l = Label(root, text="password:").grid(row=1, column=0, padx = 10, sticky = W)
pas_e = Entry(root, show="*").grid(row=1, column=1, columnspan=2, sticky = W+E, padx=10)
btn_login = Button(root, text='вход', padx= 5).grid(row=2, column=0, pady=15, sticky = W, padx=10)
btn_reg = Button(root, text='регистрация', padx= 5).grid(row=2, column=1, pady=10)
btn_forgot = Button(root, text='забыли пароль', padx= 5).grid(row=2, column=2, pady=10, padx=10)
root.mainloop()
{{ :python:оконное_приложение:tkinter:упаковщики:grid2.png?400 |}}