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.
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?
oyna.mainloop()
2
Sarlavhasi «Salom oyna» va yorlig‘i «Xush kelibsiz» bo‘lgan oyna yarating.