Tkinter Python-д а gui бағдарламалау


Сабақ 1. Tkinter дегеніміз не?



Pdf көрінісі
бет2/16
Дата04.10.2024
өлшемі1,32 Mb.
#146854
1   2   3   4   5   6   7   8   9   ...   16
Байланысты:
Tkinter. Python-да GUI бағдарламалау

Сабақ 1. Tkinter дегеніміз не? 
 
Tkinter - бұл Tk кітапханасымен жұмыс істеуге арналған Python пакеті. Tk 
кітапхансының құрамында пайдаланушының графикалық интерфейсінің компоненттері 
бар (graphical user interface – GUI). Бұл кітапхана Tcl бағдарламалау тілінде жазылған.
Пайдаланушының графикалық интерфейсі (GUI) дегеніміз- қосымшаның экранындағы 
барлық терезелер, батырмалар, мәтіндік өрістер, скроллерлер, тізімдер, радио батырмалар, 
құсбелгілер және басқалар. Олар арқылы сіз бағдарламамен әрекетте боласыз және оны 
басқарасыз. Осы интерфейстің барлық элементтері виджеттер (widgets) деп аталады.
Қазіргі уақытта соңғы пайдаланушы үшін жасалған барлық дерлік қосымшаларда GUI 
бар. Адаммен өзара әрекеттесуді білдіретін сирек бағдарламалар консоль болып қала 
береді. Алдыңғы екі курста біз тек консольдік бағдарламалар жаздық. 
GUI –дің көптеген кітапханалары бар, олардың ішіндегі Tkinter құралы ең танымалысы 
емес, бірақ оны пайдаланып жасалынатын жобалар аз емес. Дегенмен, кейбір себептер 
бойынша ол әдепкі Python үшін таңдалды. Питонның орнату файлы әдетте басқа 
модульдермен қатар стандартты кітапхана құрамында tkinter пакетін қамтиды. 
Tkinter-ді Python-нан Tcl-ге аудармашы ретінде сипаттауға болады. Сіз Python тілінде 
бағдарлама жазсаңыз, tkinter модулінің коды сіздің нұсқауларыңызды Tk кітапханасы 
түсінетін Tcl тіліне аударады. 
Tkinter – 
оқиғаға-бағытталған
пайдаланушының графикалық интерфейсі бар 
қосымша
.
Сіз құрылымдық және объектіге бағытталған бағдарламалау туралы түсінікке ие 
болуыңыз керек. Оқиғаға бағытталған бағдарламалау оқиғаға бағытталады. Яғни, 
бағдарламалық кодтың осы немесе басқа бөлігі белгілі бір оқиға болған кезде ғана орындала 
бастайды. 
Оқиғаға бағытталған бағдарламалау объектіге бағытталған және құрылымдық 
негізделген. Біз өз кластарымыз бен объектілерімізді құрмасақ та, біз оларды қолданамыз. 
Барлық виджеттер - бұл кіріктірілген кластар жасаған объектілер болып саналады. 
Оқиғалар әртүрлі. Мысалы, уақытша фактор жұмыс істейді, біреу тінтуірді шертеді 
немесе Enter батырмасын басады, мәтінді енгізе бастайды, радио батырмаларын 
ауыстырады, бетті төменге айналдырады және т.б. Осындай жағдай болған кезде, егер тиісті 
өңдегіш құрылған болса, бағдарламаның белгілі бір бөлігі іске қосылады, бұл қандай да бір 
нәтижеге әкеледі. 
Tkinter Python модулі үшін келесі жолдардың кез келгенімен импортталады:
import tkinter 
• from tkinter import * 
• import tkinter as tk
Жеке кластарды импорттауға болады, бұл сирек жасалады. Бұл курста біз from tkinter 
import * операторын қолданамыз. Қажет болса, TkVersion тұрақтысы арқылы Tk 
орнатылған нұсқасын білуге болады:



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



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) 



ent.pack() 
but.pack() 
lab.pack() 
root.mainloop() 
Осы скрипты орындау нәтижесінде мәтін өрісіне сөздердің тізімін енгізіп, батырманы 
басып, оның сұрыпталған нұсқасын алуға болатын терезе пайда болады: 
Енді біздің бағдарламада объектіге бағытталған тәсілді қолдануға тырысайық. Бұл 
міндетті емес, бірақ ыңғайлы. Белгіден, батырмадан және өрістен тұратын топ 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   16




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет