Qarshi davlat universiteti fizika va matematika fakulteti amaliy matematika va informatika yo'nalishi


Python dasturlash tilining Tkinter moduli bilan ishlash



Download 217,54 Kb.
bet9/12
Sana14.07.2022
Hajmi217,54 Kb.
#798664
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
Amaliyot xisoboti, Tosheva D

10.Python dasturlash tilining Tkinter moduli bilan ishlash

Tkinter - bu Python kutubxonasi bo'lib unda Tk kutubxonasidan foydalaniladi.. Tk kutubxonasida Tcl dasturlash tilida yozilgan grafik foydalanuvchi interfeysi (GUI) komponentlari mavjud.


Grafik interfeys (GUI) - bu dasturni ochishda ekranda ko'riladigan barcha oynalar, tugmachalar, matn maydonlari, skrollerlar, ro'yxatlar, radio tugmalari, tasdiqlash knopkalari va boshqalarni yaratish mumkin . Ular orqali siz dastur bilan o'zaro aloqada bo'lib, uni boshqarasiz. Ushbu barcha interfeys elementlari vidjet deb nomlanadi.
Ko'pgina GUI kutubxonalari mavjud, ulardan Tk eng ommabopi emas , garchi undan foydalanib juda ko'p loyihalar yozilgan. Bu Python uchun avtomatik ichiga joylashtirilgan kutubxona .

Voqealarga asoslangan GUI dasturlari. Siz allaqachon tuzilgan va afzalroq ob'ektga yo'naltirilgan dasturlarni yaxshi bilishingiz kerak. Hodisalarga asoslangan voqealar yo'naltirilgan. Ya'ni, dastur kodining u yoki bu qismi u yoki bu voqea sodir bo'lgandagina bajarilishini boshlaydi


Voqealarga yo'naltirilgan dasturlash ob'ektga yo'naltirilgan va tuzilgan. Agar biz o'z sinflarimizni va ob'ektlarimizni yaratmasak ham, ulardan foydalanamiz. Barcha vidjetlar - bu o'rnatilgan sinflar tomonidan yaratilgan ob'ektlardir.
Dasturlar doim xar xil tuzilishga ega bo'ladi. Masalan , kimdir sichqonchani bosdi yoki Enter tugmachasini bosdi, matn kiritishni boshladi, radio tugmachalarini almashtirdi, class larni ishgaa tushirai va hokazo. Bunday voqea sodir bo'lganda, tegishli ishlov beruvchi dastur yaratilsa, dasturning ma'lum qismi ishga tushiriladi va bu qandaydir natijaga olib keladi.
Tkinter Python moduli uchun standart sifatida quyidagi usullardan biri bilan import qilinadi:

  • import tkinter

  • from tkinter import *

  • import tkinter as tk

Aloxida sinflarni import qilish mumkin, bu kamdan-kam hollarda amalga oshiriladi. Ushbu kursda biz from tkinter import * dan foydalanamiz.
Bundan tashqari, GUI dasturini yozish uchun quyidagilarni bajarishingiz kerak:
1.Asosiy oynani yarating.
2.Vidjetlarni yarating va ularning xususiyatlarini (variantlarini) sozlang.
3.Hodisalarni aniqlang, ya'ni dastur nimaga javob beradi.
4.Voqealar ishlovchilarini, ya'ni dastur qanday munosabatda bo'lishini tasvirlab bering.
5.Vidjetlarni asosiy oynada joylashtiring.
6.Hodisa tsiklini tuzing
Zamonaviy operatsion tizimlarda har qanday foydalanuvchi ilovasi asosiy oyna deb atash mumkin bo'lgan oynaga kiritilgan, chunki boshqa barcha vidjetlar unda joylashgan. Yuqori darajadagi oyna ob'ekti tkinter modulining Tk sinfidan yaratiladi. Ob'ekt bilan bog'liq bo'lgan o'zgaruvchini ko'pincha root deyiladi:
root = Tk()
from tkinter import *


root = Tk() #root
root['bg'] ='#fafafa' #fon rangi
root.title = "MALUMOT" #Oyna momi
root.wm_attributes('-alpha',0.8) #oyna yorugliligi
root.geometry = ('400 x 400') #oyna o'lchami
root.resizable(width = True, height = True) #oynani kattalashtirish yoki
# kichiklashtirishni o'chirib ko'yamiz
root.mainloop()

  1. Kalkulyator dasturi

from tkinter import *
from decimal import *


root = Tk()
root.title('Kalkulyator')


buttons = (('7', '8', '9', '/', '4'),
('4', '5', '6', '*', '4'),
('1', '2', '3', '-', '4'),
('0', '.', '=', '+', '4')
)


activeStr = ''
stack = []
def calculate():
global stack
global label
result = 0
operand2 = Decimal(stack.pop())
operation = stack.pop()
operand1 = Decimal(stack.pop())


if operation == '+':
result = operand1 + operand2
if operation == '-':
result = operand1 - operand2
if operation == '/':
result = operand1 / operand2
if operation == '*':
result = operand1 * operand2
label.configure(text=str(result))


def click(text):
global activeStr
global stack
if text == 'CE':
stack.clear()
activeStr = ''
label.configure(text='0')
elif '0' <= text <= '9':
activeStr += text
label.configure(text=activeStr)
elif text == '.':
if activeStr.find('.') == -1:
activeStr += text
label.configure(text=activeStr)
else:
if len(stack) >= 2:
stack.append(label['text'])
calculate()
stack.clear()
stack.append(label['text'])
activeStr = ''
if text != '=':
stack.append(text)
else:
if text != '=':
stack.append(label['text'])
stack.append(text)
activeStr = ''
label.configure(text='0')


label = Label(root, text='0', width=75)


label.grid(row=0, column=0, columnspan=4, sticky="nsew")


button = Button(root, text='CE', command=lambda text='CE': click(text))
button.grid(row=1, column=3, sticky="nsew")
for row in range(4):
for col in range(4):
button = Button(root, text=buttons[row][col],
command=lambda row=row, col=col: click(buttons[row][col]))
button.grid(row=row + 2, column=col, sticky="nsew")


root.grid_rowconfigure(6, weight=1)
root.grid_columnconfigure(4, weight=1)


root.mainloop()

Download 217,54 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish