Kirish.

Yaratgan dasturimizdan ko'pchilik foydalanishi, uni sotib olishi uchun qulay interfeysga ega bo'lishi kerak. Buyruqlar satrida yoki tizim terminalida ishlaydigan dasturlarni hech kim sotib olmaydi. Python dasturlash tilida ham GUI(foydalanuvchi grafik interfeysi)ga ega dasturlar yaratish mumkin. Buning uchun ko'plab kutubxona va modullar yaratilgan bo'lib, ulardan biri Tkinter standart moduldir.

Tkinter modulida grafik interfeysli (GUI-graphical user interface) dasturlarni turli vidjetlar yordamida yaratamiz. Vidjet bu- dastur oynasiga joylashtiriladigan, har xil vazifalarni bajaradigan elementlardir.

VidjetVazifasiVidgetVazifasi
LabelMa'lumot chiqarish uchun matnli maydon hosil qiladi.TextMa'lumot chiqarish uchun matnli maydon hosil qiladi.
ComboboxOchiluvchi ro'yxat yaratadi.EntryMatn kiritadigan maydon hosil qiladi.
SpinboxKo'paytiruvchi va kamaytiruvchi tugmalarga ega kiritish qatorini hosil qiladi.OptionMenu()Tanlanadigan menyu hosil qiladi.
ProgressbarJarayonni ko'rsatuvchi vidjet yaratadi.RadiobuttonRo'yxatdan bittasini tanlashda ishlatiladigan vidjet.
checkbuttonRo'yxatdan bir nechtasini tanlashda ishlatiladigan vidjet.ButtonBoshqarish tugmasi.
PhotoImageDastur oynasiga rasm joylashtirish uchun vidjet  

Jadvalda tkinter vidjetlari berilgan, ularni boshqa dasturlash tillarida kompanentalar deb ataymiz. Vidjetlardan foydalanib dastur tuzib chiqamiz.

import tkinter- buyrug'i orqali tkinter modulini yuklaymiz. Oyna yaratish uchun oyna=tkinter.Tk()-funksiyasidan foydalanamiz. title()-funksiyasi dasturga sarlavha berishda foydalaniladi. oyna.mainloop()- esa dastur oynasini ekranga chiqaradi. Label vidjeti oynaga matn joylashtirish uchun foydalaniladi.

1.Pythonda "Hello World" interfeysli dasturini yarating.

import tkinter #modulni yuklash
oyna=tkinter.Tk() #oyna yaratish
oyna.title("Hello World") #dastur sarlavhasi
tkinter.Label(oyna, text="Hello World!").pack() #dasturga matn joylashtirish
oyna.mainloop() #oynani namoish etish
Hello World dasturi.
Hello World dasturi.

Bir qatorli ma'lumot kiritishda Entry vidjetidan foydalanamiz. Oyna o'lchamlarini geometry()-funksiyasi orqali o'zgartiriladi. place()-orqali vidjetlarni joy kordinatasini ko'rsatamiz.

2.Ikkita a va b sonni ko'shuvchi interfeysli dastur tuzing.

from tkinter import*
oyna=Tk()
oyna.geometry("500x200") #oyna o`lchami
oyna.title("Ikkita sonni qo'shish")
Label(oyna,text="a=").place(x=20,y=20)
a=Entry(oyna,width=20) #matn kiritish vidjeti
a.place(x=40,y=20) #vidjet joyini ko`rsatish
Label(oyna,text="b=").place(x=20,y=50)
b=Entry(oyna, width=20)
b.place(x=40,y=50)
l3=Label(oyna,text="")
l3.place(x=40,y=120)
def yig(): #yig`indini hisoblovchi funksiya
    return l3.configure(text="Natija: "+str(float(a.get())+float(b.get())))
t=Button(oyna,text="Qo`shish", command=yig)
t.place(x=40,y=80)
oyna.mainloop()
Yig'indini hisoblovchi dastur.
Yig'indini hisoblovchi dastur.

3.Kiritilgan sonni faktorialini hisoblovchi interfeysli dastur tuzing.

from tkinter import*
from math import factorial
oyna=Tk()
oyna.geometry("500x200")
oyna.title("Faktorialni hisoblash")
Label(oyna,text="Son kititing=").place(x=20,y=20)
a=Entry(oyna,width=20)
a.place(x=100,y=20)
def fakt():
    b.delete(0,"end")
    return b.insert(0,str(factorial(int(a.get()))))
t=Button(oyna,text="Faktorial", width=40, command=fakt)
t.place(x=50,y=60)
Label(oyna,text="Natija=").place(x=20,y=120)
b=Entry(oyna, width=20)
b.place(x=100,y=120)
oyna.mainloop()
Faktorialni hisoblash.
Faktorialni hisoblash.

Agar ro'yxatdan faqat bittasini tanlab olish kerak bo'lsa Radiobutton-vidjetidan foydalanamiz.

4.Fon rangi o'zgaruvchi dastur tuzing.

from tkinter import*
oyna=Tk()
oyna.geometry("600x200")
oyna.title("Oyna fon rangini o`zgartirish")
rang=StringVar()
r1=Radiobutton(oyna, text="Qizil",variable=rang, value="red").place(x=50, y=20)
r2=Radiobutton(oyna, text="Yashil",variable=rang, value="green").place(x=50, y=40)
r3=Radiobutton(oyna, text="Sariq",variable=rang, value="yellow").place(x=50, y=60)
r4=Radiobutton(oyna, text="Ko`k",variable=rang, value="blue").place(x=50, y=80)
def fon():
    oyna.configure(background=rang.get()) #dastur fon rangini o`zgartirish
    return 0
t=Button(oyna,text="Rangni o'zgartirish", width=40, command=fon)
t.place(x=50,y=120)
oyna.mainloop()
Oyna rangini o'zgartirish.
Oyna rangini o'zgartirish.

Pythonda bir nechta elementni tanlab olish kerak bo'lsa, Checkbutton-vidjeti ishlatiladi. Ko'p qatorli matn yozish uchun esa Text-vidjetidan foydalanamiz.

5.Ro'yxatdan bir nechta qiymatni tanlab olish mumkin bo'lgan interfeysli dastur tuzing.

from tkinter import*
oyna=Tk()
oyna.geometry("600x200")
oyna.title("Ro'yxatdan tanlash")
r1=IntVar()
Checkbutton(oyna, text="Olma", variable=r1).place(x=50, y=20)
r2=IntVar()
Checkbutton(oyna, text="Anor",variable=r2).place(x=50, y=40)
r3=IntVar()
Checkbutton(oyna, text="Uzum",variable=r3).place(x=50, y=60)
r4=IntVar()
Checkbutton(oyna, text="Olcha",variable=r4).place(x=50, y=80)
def fon():
    s="Tanlandi:\n"
    if int(r1.get())==1:s=s+"Olma\n"
    if int(r2.get())==1:s=s+"Anor\n"
    if int(r3.get())==1:s=s+"Uzum\n"
    if int(r4.get())==1:s=s+"Olcha"
    matn.delete(1.0,END)
    matn.insert(END, s)
    return
t=Button(oyna,text="Tanlangan", width=30, command=fon)
t.place(x=80,y=130)
matn=Text(oyna, width=40, height=6)#ko'p qatorli matn yozish vidjeti
matn.grid(row=3, column=0)
matn.place(x=120, y=20)
oyna.mainloop()
Checkbutton va Text vidjetlari.
Checkbutton va Text vidjetlari.

Xulosa.

Tkinterning bir nechta vidjetlaridan foydalanishni o'rganib chiqdik. Tkinter modulining qulay tomoni uni o'rnatish shart emas, python bilan birga o'rnatilgan bo'ladi. Python dasturlash tilidan foydalanib, qulay, interfeysli dasturlar yaratish mumkin ekan. O'rganib olsangiz qiziqarli dasturlar yaratib sotishingiz yoki boshqalarga tarqatishingiz mumkin.Pythonning yana bir imkoniyati interfeysli dastur kodlarini o'zgartirmasdan boshqa operatsion tizimlar uchun foydalanish mumkin. Tkinterdan foydalanishni keyingi maqolalarimda davom ettiraman.