☰ Mundarija · Informatika

Grafik interfeys: tkinter

Darslar 53–54 · 2 ta dars · M. R. Fayziyeva, D. M. Sayfurov, N. S. Xaytullayeva. Informatika va axborot texnologiyalari, 9-sinf. «Nashriyot uyi Tasvir», Toshkent, 2020
53

Pythonda foydalanuvchi grafik interfeysi bilan ishlash

Darslik: 104–106-betlar
MaqsadGrafik interfeys (GUI) va vijet tushunchalarini biladi, tkinter modulida oyna, yorliq, matn maydoni va tugmacha yaratadi, tugmacha bosilganda funksiya ishlashini ta’minlaydi.
Yangi so‘zlar
GUI · GUI: graphical user interface, made of windows, buttons and fieldsvijet · widget: one element of the interface, such as Label, Entry or Buttonmainloop() · mainloop(): shows the window and waits for the user’s actionsgrid() · grid(): places a widget in a cell of a grid by row and column
Tushuntirish

Hozirgacha dastur bilan matn orqali muloqot qildik; ko‘pgina dasturlar esa oyna, tugmacha va matn maydonlaridan iborat grafik interfeysga ega. Python bilan birga keladigan tkinter moduli bunday oynalarni yaratadi (ba’zi tizimlarda uni alohida qo‘shish kerak bo‘lishi mumkin). Tartib bunday: import tkinter as tk; oyna = tk.Tk() bilan asosiy oyna yaratiladi; oyna.title() va oyna.geometry("250x100") sarlavha va o‘lchamni beradi; vijetlar yaratiladi: tk.Label – yozuv, tk.Entry – matn kiritish maydoni, tk.Button – tugmacha; ularni grid(row=…, column=…) bilan katakka joylashtiramiz; eng oxirida oyna.mainloop() oynani ochib, foydalanuvchi harakatlarini kutadi. Tugmacha bosilganda ishlaydigan funksiya command= bilan beriladi va qavssiz yoziladi: command=salom; qavs bilan yozilsa, funksiya tugmacha bosilmasdan darrov ishlab ketadi. Entry dagi matn get() bilan olinadi va satr bo‘ladi; son kerak bo‘lsa, int() qilinadi. Yorliq matni config(text=…) bilan o‘zgartiriladi.

Namunalar
Salomlashish oynasi: import tkinter as tk ⏎ def salom(): ⏎     yorliq.config(text="Salom!") ⏎ oyna = tk.Tk() ⏎ oyna.title("Mening ilovam") ⏎ oyna.geometry("250x100") ⏎ yorliq = tk.Label(oyna, text="") ⏎ yorliq.grid(row=0, column=0) ⏎ tugma = tk.Button(oyna, text="Bos", command=salom) ⏎ tugma.grid(row=1, column=0) ⏎ oyna.mainloop() Dastur oynasi «Mening ilovam» sarlavhali, tugmacha bosilganda yorliqda Salom! yozuvi paydo bo‘ladi.
Ikkilantirish: import tkinter as tk ⏎ def ikki(): ⏎     n = int(maydon.get()) ⏎     natija.config(text=str(n * 2)) ⏎ oyna = tk.Tk() ⏎ oyna.title("Ikkilantirish") ⏎ maydon = tk.Entry(oyna, width=10) ⏎ maydon.grid(row=0, column=0) ⏎ tugma = tk.Button(oyna, text="x 2", command=ikki) ⏎ tugma.grid(row=0, column=1) ⏎ natija = tk.Label(oyna, text="") ⏎ natija.grid(row=1, column=0) ⏎ oyna.mainloop() Maydonga 21 yozib, tugmacha bosilsa, yorliqda 42 chiqadi, chunki get() satr beradi va int() uni songa aylantiradi.
Sinfda faoliyat

«Oynani qog‘ozda loyihalash»: guruh qog‘ozga oyna chizadi (yorliq, maydon, tugmacha) va ularning katakdagi joylarini (row, column) belgilaydi; boshqa guruh shu chizma bo‘yicha kodni yozadi.

Mashq
1
Oynani ochib, foydalanuvchi harakatlarini kutadigan buyruq qaysi?
2
Sarlavhasi «Salom oyna» va yorlig‘i «Xush kelibsiz» bo‘lgan oyna yarating.
3
Yorliq, matn maydoni va tugmacha uchun qaysi vijet nomlari ishlatiladi?
4
Nima uchun command=salom yoziladi, command=salom() emas?