Зертханалық жұмыс № 27 Рack әдісі - GUI виджеттерімен танысуды жалғастырмас бұрын, олардың терезеде орналасу мәселесіне тоқталайық. Бұл маңызды сұрақ, өйткені бағдарламаның ыңғайлылығы көбіне интерфейстің интуитивтілігіне байланысты. Виджеттерді кеңістікте ұйымдастыру арқылы ішінара дизайнер, интерфейс әзірлеушісі болады.
Tkinter-де геометрия деп аталатын үш менеджер бар - қаптама, тор және позиция. Бұл сабақта біріншісі ең қарапайым және жиі қолданылатын болып саналады, қалған екеуі кейінірек айтылады. - Tkinter-де геометрия деп аталатын үш менеджер бар - қаптама, тор және позиция. Бұл сабақта біріншісі ең қарапайым және жиі қолданылатын болып саналады, қалған екеуі кейінірек айтылады.
- Packer барлық виджет нысандарына ие pack әдісі арқылы аталады. Біз оны қолданып қойдық. Егер сіз геометрия менеджерлерінің ешқайсысын интерфейс элементіне қолданбасаңыз, онда ол терезеде көрінбейді. Сонымен бірге әр түрлі менеджерлерді бір терезеде (немесе кез-келген басқа ата-аналық виджетте) біріктіру мүмкін емес. Егер сіз pack әдісін қолдана отырып виджеттерді орналастыра бастасаңыз, онда grid мен place әдістерін дереу қолданудың қажеті жоқ.
Егер аргументтер пакеттерге берілмесе, онда виджеттер тігінен орналасады, бірінің үстіне бірі. Алғашқы қоңырау шалатын объект жоғарғы жағында болады. Екінші қайсысы - біріншісінің астында және т.б. - Егер аргументтер пакеттерге берілмесе, онда виджеттер тігінен орналасады, бірінің үстіне бірі. Алғашқы қоңырау шалатын объект жоғарғы жағында болады. Екінші қайсысы - біріншісінің астында және т.б.
- Pack әдісі бүйірлік параметрге ие, ол төрт tkinter тұрақты мәннің бірін алады - TOP, BOTTOM, LEFT, RIGHT (жоғарғы, төменгі, сол, оң). Әдепкі бойынша, қаптамада жағы көрсетілмеген кезде, оның мәні TOP болады. Осыған байланысты виджеттер тігінен жинақталады.
Создадим четыре раскрашенные метки - Создадим четыре раскрашенные метки
- l1 = Label(f_top, width=7, height=4, bg='yellow', text="1")
- l2 = Label(f_top, width=7, height=4, bg='orange', text="2")
- l3 = Label(f_bot, width=7, height=4, bg='lightgreen', text="3")
- l4 = Label(f_bot, width=7, height=4, bg='lightblue', text="4")
және жанама мәндердің әр түрлі комбинацияларын қарастырыңыз: - және жанама мәндердің әр түрлі комбинацияларын қарастырыңыз:
Соңғы екі нұсқадағы мәселе, егер сізге виджеттерді төртбұрышқа орналастыру қажет болса, яғни екеуін жоғарыдан, екеуін астыңғы жағынан дәл жоғарғы екі астына орналастыру қажет болса, онда бұл проблемалы, мүмкін емес. Сондықтан олар Frame класынан алынған көмекші виджет - кадрға (кадрға) жүгінеді. - Соңғы екі нұсқадағы мәселе, егер сізге виджеттерді төртбұрышқа орналастыру қажет болса, яғни екеуін жоғарыдан, екеуін астыңғы жағынан дәл жоғарғы екі астына орналастыру қажет болса, онда бұл проблемалы, мүмкін емес. Сондықтан олар Frame класынан алынған көмекші виджет - кадрға (кадрға) жүгінеді.
Фреймдер негізгі терезеде, ал жақтауларда - виджеттер орналастырылған: - Фреймдер негізгі терезеде, ал жақтауларда - виджеттер орналастырылған:
from tkinter import *
root = Tk()
f_top = Frame(root)
f_bot = Frame(root)
l1 = Label(f_top, width=7, height=4, bg='yellow', text="1")
l2 = Label(f_top, width=7, height=4, bg='orange', text="2")
l3 = Label(f_bot, width=7, height=4, bg='lightgreen', text="3")
l4 = Label(f_bot, width=7, height=4, bg='lightblue', text="4")
f_top.pack() f_bot.pack()
l1.pack(side=LEFT)
l2.pack(side=LEFT)
l3.pack(side=LEFT)
l4.pack(side=LEFT)
root.mainloop()
Нәтижесі
Frame-ден басқа ұқсас LabelFrame класы бар - қолтаңбасы бар кадр. Қарапайым жақтаудан айырмашылығы оның text қасиеті бар - Frame-ден басқа ұқсас LabelFrame класы бар - қолтаңбасы бар кадр. Қарапайым жақтаудан айырмашылығы оның text қасиеті бар
… f_top = LabelFrame(text="Верх") f_bot = LabelFrame(text="Низ") …
- Рack әдісін қолданып ұсынған мысалды құру
Достарыңызбен бөлісу: |