4
>>> from tkinter import *
>>> TkVersion
8.6
GUI бағдарламасын жазу үшін келесі әрекеттерді орындау керек:
1. Басты терезені жасау.
2. Виджеттер жасау және олардың қасиеттерін (опцияларын) енгізу.
3. Оқиғаны анықтау, яғни бағдарлама неге жауап береді.
4. Оқиға өңдеушілерін анықтау, яғни бағдарлама қалай жауап береді.
5. Виджеттерді басты терезеде орналастыру.
6. Оқиғаны өңдеу циклін іске қосу.
Бірізділік міндетті емес, бірақ бірінші және соңғы тармақтар әрқашан
өз орындарында
қалады. Мұның бәрін іс жүзінде көрейік.
Қазіргі заманғы операциялық жүйелерде кез-келген қолданушы қосымшасы негізгі деп
атауға болатын терезеде орналасқан, өйткені онда барлық басқа виджеттер орналасқан.
Жоғарғы деңгейлі терезе объектісі tkinter модулінің Tk класынан жасалады. Объектіге
байланысты айнымалы көбінесе
root
(түбір) деп аталады:
root = Tk()
Бағдарлама терезесінде мәтін өрісі, белгі және батырма болсын. Бұл объектілер tkinter
модулінің Entry, Label және Button кластарынан жасалған. Осы кластардың
конструкторларына аргументтерді беру арқылы олардың
кейбір қасиеттерін бірден
конфигурациялаймыз:
ent = Entry(root, width=20)
but = Button(root, text="Преобразовать")
lab = Label(root, width=20, bg='black', fg='white')
Объектілерді құру кезінде олардың қасиеттерін орнату қажет емес. Оны одан кейін де
істеудің бірнеше жолы бар.
Виджет конструкторына бірінші аргумент ретінде басты виджет жіберіледі, яғни
жасалған виджет орналасатын болады. GUI элементтерін түбірді көрсетпей ақ тікелей
негізгі терезеге орналастыруға болады. Яғни, біздің мысалда біз түбірді (root) жоя аламыз:
ent = Entry(width=20)
but = Button(text="Преобразовать")
lab = Label(width=20, bg='black', fg='white')
Дегенмен, виджеттер міндетті түрде root-та орналаспайды. Олар басқа виджеттерде
орналасуы мүмкін, ол кезде «шеберді» көрсету қажет болады.
Бағдарламада өріске пайдаланушы енгізген мәтін өрісін басқан кезде сөздер тізіміне
бөлініп, сөздер алфавит бойынша сұрыпталып, белгіде көрсетіледі делік.
Мұның бәрін
жасайтын код функцияға орналастырылуы керек:
def str_to_sort_list(event):
5
s = ent.get()
s = s.split()
s.sort()
lab['text'] = ' '.join(s)
Bind әдісін қолдана отырып, оқиға басталған кезде шақырылған функциялардың бір
параметрі болуы керек. Ол әдетте
event
деп аталады, яғни "оқиға".
Функцияда get әдісі арқылы мәтін жол болып табылатын өрістен алынады. Ол split
әдісінің көмегімен сөздер тізіміне айналады. Содан кейін тізім сұрыпталады. Соңында text
таңбасының қасиеті өзгереді. Оған join жолдық әдісінің көмегімен тізімнен алынған жол
беріледі.
Енді функция шақыруын оқиғамен байланыстыру керек:
but.bind('
', str_to_sort_list)
Бұл жағдайда bind әдісі арқылы жасалады. Оған оқиға мен функция- өңдеуші беріледі.
Оқиға функцияға беріліп,
event
параметріне тағайындалады. Мұнда оқиға тінтуірдің сол
жақ батырмасымен шерткендегі " " жолы болып табылады.
Кез-келген қосымшада виджеттер терезе бойымен біркелкі ұйымдастырылған,
интерфейс егжей-тегжейлі ойластырылған және әдетте белгілі бір стандарттарға бағынады.
Әзірге қарапайым tkinter-дің геометрия менеджері - pack әдісі арқылы элементтерді бірінің
астына орналастырыңыз:
ent.pack()
but.pack()
lab.pack()
Tk данасының mainloop әдісі оқиғаларды өңдеудің негізгі циклын бастайды, соның
ішінде “жинақталған” басты терезе виджеттерін көрсетуге әкеледі:
root.mainloop()
Бағдарламаның толық коды:
from tkinter import *
def str_to_sort_list(event):
s = ent.get()
s = s.split()
s.sort()
lab['text'] = ' '.join(s)
root = Tk()
ent = Entry(width=20)
but = Button(text="Преобразовать")
lab = Label(width=20, bg='black', fg='white')
but.bind('', str_to_sort_list)
6
ent.pack()
but.pack()
lab.pack()
root.mainloop()
Осы скрипты орындау нәтижесінде мәтін өрісіне сөздердің тізімін енгізіп, батырманы
басып, оның сұрыпталған нұсқасын алуға болатын терезе пайда болады:
Енді біздің бағдарламада объектіге бағытталған тәсілді қолдануға тырысайық. Бұл
міндетті емес, бірақ ыңғайлы. Белгіден, батырмадан
және өрістен тұратын топ
Достарыңызбен бөлісу: