Сегодня про последний в Tkinter менеджер геометрии — grid(). Этот метод позволяет разместить виджеты элементов управления Tk в окне или контейнере как в таблице. На мой взгляд этот менеджер даже проще чем предыдущий pack(). Также этот менеджер похож на тег table в html, если вы знакомы с веб разработкой, то разобраться с tkinter.grid() вам будет совсем легко, ну а видео ниже надеюсь вам поможет с нюансами.
Полезные ссылки
- https://www.tcl.tk/man/tcl/TkCmd/grid.html
- https://tkdocs.com/tutorial/grid.html
- https://www.pythontutorial.net/tkinter/tkinter-grid/
Код из видео
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import tkinter from tkinter import Tk, Text, Label, Frame import tk """ Документация по grid() https://www.tcl.tk/man/tcl/TkCmd/grid.html https://tkdocs.com/tutorial/grid.html https://www.pythontutorial.net/tkinter/tkinter-grid/ """ if __name__ == '__main__': print("** Hola Hey, Azzrael_YT subs!!!\n") r = Tk() r.geometry("+960+120") args = {'width': 100, 'height': 100, 'master': r} # Frame(**args, bg="red").grid(row=0, column=0) # Frame(**args, bg="green").grid(row=0,column=1) # Frame(**args, bg="blue").grid(row=1, column=0) # Frame(**args, bg="black").grid(row=1,column=1) # xxxconfigure # r.columnconfigure(2, minsize=200) # r.columnconfigure(3, pad=10) # r.rowconfigure(0, weight=1) # Frame(**args, bg="red").grid(row=0, column=0) # Frame(**args, bg="green").grid(row=0,column=1) # Frame(**{**args, 'height':300}, bg="green").grid(row=0,column=1) # Frame(**args, bg="blue").grid(row=1, column=3) # Frame(**args, bg="black").grid(row=1,column=4) # columnspan, rowspan # Frame(**args, bg="red").grid(row=0, column=0) # Frame(r, width=50, height=200, bg="green").grid(row=0, column=1, rowspan=3) # Frame(**args, bg="gray").grid(row=1, column=1) # , sticky="EW") # Frame(**{**args, "width":100}, bg="blue").grid(row=1, column=2) #, sticky="EW") # Frame(**args, bg="black").grid(row=1,column=3) # sticky - N+S+W+E, растягивается если WE, NS, в углы если NW etc. Frame(**args, bg="red").grid(row=0, column=0, sticky="S") Frame(r, width=300, height=300, bg="green").grid(row=0,column=1, columnspan=2) # Frame(**args, bg="blue").grid(row=1, column=1) Frame(**args, bg="blue").grid(row=1, column=1, sticky=tkinter.NSEW, columnspan=2) Frame(r, width=100, height=300, bg="gray").grid(row=1,column=0) # Frame(r, width=100, height=300, bg="black").grid(row=1,column=2) # Frame(r, width=100, height=300, bg="black").grid(row=1,column=2, sticky="WE") r.mainloop() |
Если у вас остались вопросы или я в чем то не прав — смело пишите в комментариях. Можно здесь, но лучше в комментариях под видео (это помогает продвигать видео и мотивирует делать в этом направлении работу дальже). Будут благодарен если оцените видосик лайком, дислайком или комментом ;)