Инструменты пользователя

Инструменты сайта


python:okonnoe_prilozhenie:tkinter:upakovschiki:grid

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

Размещение кнопок по сетке:

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

Окно регистрации:

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/okonnoe_prilozhenie/tkinter/upakovschiki/grid.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)