65–66-darslar. PYTHONDA FOYDALANUVCHI GRAFIK INTERFEYSI BILAN ISHLASH

65–66-darslar. PYTHONDA FOYDALANUVCHI GRAFIK INTERFEYSI BILAN ISHLASH
Aksariyat dasturlash tillarida foydalanuvchi bilan o‘zaro aloqani o‘rnatish uchun boshqaruv elementlari: oyna, matnlar maydoni va tugmachalar ishlatiladi. Bular umumiy nom bilan foydalanuvchining grafik interfeysi (GUI – graphical user interface) deb ataladi.
Tayanch tushunchalar
Widget (vijet)– GUIga ega ilovani yaratish uchun foydalaniladigan tugmachalar yoki matnli maydonlar kabi interfeys elementlari.
1. Foydalanuvchining grafik interfeysi nima? 2. Grafik interfeysli ilovalar qanday yaratiladi?
Barcha elementlar joylashadigan oyna GUIning asosi hisoblanadi. Oyna va uning elementlari (vijetlar)ni yaratish uchun Python standart kutubxonasining Tkinter modulidan foydalaniladi.
Tkinter – Pythondagi standart grafik kutubxona. Pythonni o‘rnatganda kutubxona dasturning ichida birga taqdim etiladi. Python o‘rnatilishi bilan GUIga ega ajoyib ilovalarni yaratish uchun zarur obyekt va usullardan foydalanish imkoniyati vujudga keladi. GUI ilovalarni yaratish uchun:
• Tkinter modulini import qilish;
• Tkinter asosiy oynasini yaratish;
• ilovaga bir yoki bir necha vijetni qo‘shish;
• foydalanuvchi bajaradigan jarayonlarni tushunadigan va ularga javob qaytaradigan
asosiy siklli kodga kirish lozim.
104
IV BOB. DASTURLASH ASOSLARI
BUNI BILASIZMI?
from tkinter import * window = Tk()
window.title(‘My App’) window.geometry(‘250×50′)
window.configure(background=’yellow’) my_label=Label(window, width=40,
height=5, bg=’yellow’, text=») my_label.grid(row=0, column=0)
def change_text(): my_label.config(text=’Hello!’)
Kutubxonadan Tkinter modulini yuklab olish.
Tkinter oynasini yaratish.
Tkinter oynasi sarlavhasiga nom berish.
Tkinter oynasining o‘lchami.
Tkinter oynasi fonining rangi.
Label funksiyasi yordamida eni 40, bo‘yi 5, rangi sariq, bo‘sh matnli maydon vijeti o‘rnatiladi.
Matnli maydonni katakka joylashtirish 0-satr va 0-ustun.
Tugmachani bosganda chaqiriluvchi funksiyani e’lon qilish.

def change_text(): my_label.config(text=’Hello!’)
my_button=Button(window, text=»Press me!», width=10, command=change_text)
my_button.grid(row=1, column=0) window.mainloop()
Tugmachani bosganda chaqiriluvchi funksiyani e’lon qilish.
Button funksiyasi yordamida nomi Press me, eni 10 ga teng tugmacha o‘rnatiladi. command= atributi yordamida tugmacha bosilganda, bajariluvchi funksiya ko‘rsatiladi.
Tugmachani katakka joylashtirish 1-satr, 0-ustun
Asosiy siklga kirish
Dastur ishga tushganda, ushbu oyna chiqariladi.
Tugmacha bosilganda, bo‘sh matnli maydonda Hello! yozuvi paydo bo‘ladi.
Dastur ilovalarida foydalaniladigan barcha vijetlar window = Tk() va window.mainloop() buyruqlari orasida kiritiladi.
Tkinter modulidagi grid() usuli katakli koordinatalar tizimidan foydalangan holda vijetlarni kerakli koordinataga joylashtirish imkonini beradi.
Vijetlar
Dasturdagi ko‘rinishi
Natijasi
Label()
my_label=Label(window, width=40, height=5, bg=’yellow’, text=») my_label.grid(row=0, column=0)
Matnli maydon
Text
text=Text(window, width=4, height=2) my_text_box.grid(row=0, column=1)
Natijani chiqarish uchun matnli maydon
Entry()
my_text_box=Entry(window, width=20) my_text_box.grid(row=0, column=0)
Matn kiritiladigan maydon
OptionMenu()
options=(1,2,3) my_variable_object=IntVar() my_variable_object.set(‘Tanlang:’) my_dropdown=OptionMenu(window, my_variable_object, *options) my_dropdown.grid()
Tanlanadigan maydon
65–66-darslar. PYTHONDA FOYDALANUVCHI GRAFIK INTERFEYSI BILAN ISHLASH
105

Radiobutton()
jinsi=StringVar() radio1=Radiobutton(window, text=’Ayol’, variable=jinsi, value=’ayol’) radio1.grid(row=3, column=0, sticky=W) radio1.select() radio2=Radiobutton(window, text=’Erkak’, variable=jinsi, value=’erkak’) radio2.grid(row=3, column=1, sticky=W) radio2.select()
Checkbutton()
var1=IntVar() checkbox1=Checkbutton(window, text=’Python’, variable=var1) checkbox1.grid(row=0, column=0)
var2=IntVar() checkbox2=Checkbutton(window, text=’Java’, variable=var2) checkbox2.grid(row=1, column=0)
Button()
my_button=Button(window, text=’Kubik ot!’, command=kubik) my_button.grid(row=4, column=0)
PhotoImage()
foto=PhotoImage(file=’image/foto.png’) my_label=Label(window, image=foto) my_label.grid(row=0, column=0)
?
1. Foydalanuvchi grafik interfeysi (GUI) nima?
2. Vijet nima va u nima maqsadda ishlatiladi?
3. GUI ilovalarga vijet qanday qo‘shiladi?
4. Ilova oynasida vijet qanday joylashtiriladi, qaysi usul yordamida? 5. Tugmachalar yordamida funksiya qanday ishga tushiriladi?
1. Rangi yashil, o‘lchami 100×100 bo‘lgan “Mening birinchi ilovam” nomli GUI oynasini yaratuvchi dastur kodini yozing. Oynada “Salom O‘zbekiston” xabarini chiqaruvchi tugmachasini joylashtiring.
2. Rangi pushti, o‘lchami 250×150 bo‘lgan “Mevalar” nomli GUI oynasini yaratuvchi dastur kodini yozing. Oynada berilgan 4 ta mevadan birini tanlash imkonini beruvchi vijetni joylashtiring.
106
IV BOB. DASTURLASH ASOSLARI
UY VAZIFASI
SAVOL VA TOPSHIRIQLAR

67-dars. AMALIY MASHG‘ULOT
Misol. GUIdan foydalanib, 1 dan n gacha bo‘lgan 10 ta tasodifiy sonni chiqaruvchi dastur tuzing. n foydalanuvchi tomonidan kiritiladi.
from tkinter import * from random import randint def tasodifiy():
number = int(textbox_input.get()) textbox_output.delete(0.0, END)
for i in range (1,11):
t_son = str (randint(1, number))
+ ‘\n’) textbox_output.insert(END, t_son)
window = Tk()
window.title(‘Tasodifiy son’) window.geometry(‘250×250′) window.configure(background=’yellow’)
input_label = Label (window, text=’Son: ‘, bg=’yellow’)
inpu t_label.grid (row=0, column=0)
output_label = Label(window, text =’ \nNatija’, bg=’yellow’)
Kutubxonadan Tkinter modulini yuklab oladi.
Kutubxonadan random modulining randint funksiyasini yuklab oladi.
Funksiyani e’lon qiladi.
Matn maydoni orqali kiritilgan textbox_input o‘zgaruvchisi qiymatini olib, butun songa aylantiradi.
Natijani chiqaruvchi maydon, ya’ni textbox_output o‘zgaruvchisining qiymatini o‘chiradi.
1 dan 11 gacha 10 ta sikl ishlaydi.
1 dan numbergacha bo‘lgan sonlar orasidan tasodifiy sonni topadi.
Tasodifiy sonni natija chiqaruvchi maydon, ya’ni textbox_output o‘zgaruvchisiga tenglaydi.
Tkinter oynasini yaratish.
Tkinter oynasi sarlavhasiga nom beradi.
Tkinter oynasi o‘lchamini o‘rnatadi.
Tkinter oynasi fon rangini belgilaydi.
Tasodifiy son yuqori chegarasining maydoni nomini ko‘rsatish
uchun yorliq yaratadi.
Matnli maydonni katakka joylashtiradi: 0-satr va 0-ustun.
Tasodifiy sonlarni chiqarish maydoni nomini ko‘rsatish uchun yorliq yaratadi.
output_label.grid(row=2, column=0) textbox_input = Entry (window, width=5)
textbox_input.grid (row=1, column=0)
textbox_output = Text(window, height=10, width=6)
Matnli maydonni katakka joylashtiradi: 2-satr va 0-ustun.
Tasodifiy sonning yuqori chegarasini kiritish uchun matn maydoni yaratadi.
Matnli maydonni katakka joylashtiradi: 1-satr va 0-ustun.
10 ta tasodifiy sonni chiqarish uchun matnli maydonni yaratadi.
67-dars. AMALIY MASHG‘ULOT
107

AMALIY
textbox_output. grid(row=3, column=0)
kubik_button = Button(window,text= ‘Tasodifiy son’, command=tasodifiy)
kubik _button grid(row=1,
column=1) window.mainloop()
Matnli maydonni katakka joylashtiradi: 3-satr va 0-ustun.
“Tasodifiy son” nomli tasodifiy funksiyani chaqiradigan tugmacha yaratiladi.
Tugmachani katakka joylashtiradi: 1-satr, 1-ustun.
Asosiy siklga kirish
Dastur ishga tushganda, ushbu oyna chiqariladi.
Tugmacha bosilganda, 1 dan 15 gacha bo‘lgan sonlar orasidan tasodifiylarini chiqaradi.
1. GUIdan foydalanib, berilgan songa karrali 10 ta sonni chiqaruvchi dastur tuzing. Beril- gan son foydalanuvchi tomonidan kiritiladi.
2. GUIdan foydalanib, berilgan songa karrali sonlarni chiqaruvchi dastur tuzing. Berilgan
son va karrali sonlarning soni foydalanuvchi tomonidan kiritiladi.
3. GUIdan foydalanib, ikkita a va b sonni qabul qiladigan, ab ni hisoblovchi dastur tuzing. 4. GUIdan foydalanib, n ta tub sonni chiqaruvchi dastur tuzing (1 ga va o‘ziga bo‘linadigan
songa tub son deyiladi). n foydalanuvchi tomonidan kiritiladi.
5. GUIdan foydalanib, ikkita a va b sonni qabul qiladigan, ular EKUBini hisoblovchi dastur
tuzing.
6. GUIdan foydalanib, ikkita a va b sonni qabul qiladigan, ularni EKUKini hisoblovchi dastur
tuzing.
68-dars. NAZORAT ISHI
1. 1 dan n gacha bо‘lgan natural sonlar kubining yig‘indisini topish dasturini tuzing. 2. P=2*4*6*….*40 ko‘paytmani hisoblash dasturini tuzing.
3. 0 bilаn tugovchi sonlаr ketmа-ketligi berilgаn. Uni аkslаntiruvchi dаstur tuzing.
Mаsаlаn, 1230 dаn 0321 hosil qiling.
4. Protsedura yordamida berilgаn mаtndаgi ‘k’ belgini ‘q’ belgiga, ‘t’ belgini ‘d’ belgiga,
‘n’ belgini ‘m’ belgiga almashtiruvchi dastur tuzing
TOPSHIRIQLAR
108
IV BOB. DASTURLASH ASOSLARI

5. Berilgаn ikki yoki undаn ortiq sonning eng kichik umumiy kаrrаlisi (EKUK)ni topish dаsturini tuzing. Funksiyadаn foydаlаning.
6. Soаt, minut vа sekunddа berilgаn birlikni sekundgа аylаntirish funksiyasini yozing.
7. Canvas maydonida matn va rasmdan iborat otkritka hosil qiling.
8. GUIdan foydalanib, kalkulyator hosil qiling.
9. Shilliqqurt balandligi h metr daraxtning yuqorisiga sudralib chiqmoqda. U kunduzi
a metr ko‘tarilsa, kechasi b metr pastga tushadi. U daraxt uchiga necha kunda yetib boradi? h, a va b (a>b) qiymatlar foydalanuvchi tomonidan kiritiladi.
10. Ikkita a va b son berilgan. Ulardan kattasini aniqlash dasturini tuzing.
11. Belgilar yordamida hosil qilingan pingvinni n marta chiqarish dasturini tuzing. n –1 dan 4 gacha bо‘lgan natural sonlarni qabul qiladi.
12. n ta kvadratni ekranga chiqaruvchi dastur tuzing. n –1 dan 5 gacha bо‘lgan natural sonlarni qabul qiladi.
+++++ +++++ +++++ +++++

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *