• Nazariy qism
  • 11 tajriba ishi Pythonda istisnolardan foydalanib misollar yechish




    Download 1,49 Mb.
    bet5/6
    Sana27.01.2024
    Hajmi1,49 Mb.
    #147218
    1   2   3   4   5   6
    Bog'liq
    11 tajriba ishi

    15 tajriba ishi
    Python tkinter vidjetlarining xodisalari bilan ishlash.
    Ishdan maqsad: Tkinter button, canvas, checkbutton, label vidjetlari bilan amallar bajarishni o’rganish
    Kerakli jihoz:Kompyuter, Python interpritatori
    Topshiriqlar
    1.Tkinter vidjetlari Button,Canvas, Labellar
    2.Tugma yaratish
    Ishning borishi
    Nazariy qism
    Vidjet parametrlari
    Vidjetda tashqi ko'rinishi va xatti-harakatlarini sozlash imkonini beruvchi variantlar to'plami mavjud. Har bir vidjetning o'ziga xos imkoniyatlari mavjud. Odatda parametrlar konstruktor orqali o'rnatiladi. textMasalan, yuqoridagi misolda tugma tugmachadagi matnni o'rnatadigan parametrga o'rnatildi :
    ttk.Button(text="Click")
    Lekin siz vidjet oʻzgaruvchisi nomi va lugʻat sintaksisi yordamida konstruktordan tashqari parametrlarga ham kirishingiz mumkin:
    from tkinter import *
    from tkinter import ttk
    root = Tk()
    root.title("METANIT.COM")
    root.geometry("250x150")
    btn = ttk.Button()
    btn.pack()
    btn["text"]="Send"
    # получаем значение параметра text
    btnText = btn["text"]
    print(btnText)
    root.mainloop()



    Vidjet parametrlarini o'zgartirish uchun siz parametrlar va ularning qiymatlari uzatiladigan config() usulidan ham foydalanishingiz mumkin:
    btn = ttk.Button()
    btn.pack()
    Vidjet haqida ma'lumot olish
    Vidjet haqida ma'lumot olish uchun bir qancha vidjet atributlaridan foydalanishingiz mumkin. Keling, ulardan ba'zilarini ko'rib chiqaylik:
    winfo_class : vidjet sinfini qaytaradi, masalan, tugma uchun bu sinfTButton
    winfo_children : Joriy vidjet uchun bolalar vidjetlari roʻyxatini qaytaradi
    winfo_parent : ota-ona vidjetini qaytaradi
    winfo_toplevel : berilgan vidjetni o'z ichiga olgan oynani qaytaradi
    winfo_width va winfo_height : vidjetning joriy kengligi va balandligi
    winfo_reqwidth va winfo_reqheight : Vidjet talab qilingan kenglik va balandlik
    winfo_x va winfo_y : vidjetning yuqori chap burchagidagi asosiy elementga nisbatan x va y koordinatalari
    winfo_rootx va winfo_rooty : ekranga nisbatan vidjetning yuqori chap burchagidagi x va y koordinatalari
    winfo_viewable: Vidjet ko'rsatilgan yoki yashirinligini bildiradi
    Masalan, oynadagi barcha vidjetlar haqida ma'lumot olish uchun:btn.config(text="Send Email")
    from tkinter import *
    root = Tk()
    root.title("METANIT.COM")
    root.geometry("250x200")
    btn = Button(text="Hello")
    btn.pack()
    def print_info(widget, depth=0):
    widget_class=widget.winfo_class()
    widget_width = widget.winfo_width()
    widget_height = widget.winfo_height()
    widget_x = widget.winfo_x()
    widget_y = widget.winfo_y()
    print(" "*depth + f"{widget_class} width={widget_width} height={widget_height} x={widget_x} y={widget_y}")
    for child in widget.winfo_children():
    print_info(child, depth+1)
    root.update()
    print_info(root)
    root.mainloop()
    Funktsiya bu erda aniqlanadi print_info(), u parametr sifatida konsolda ko'rsatilishi kerak bo'lgan vidjetni va elementlarning vizual ierarxiyasidagi darajani (chuqurlik) oladi.
    Vidjet uchun funktsiyaning o'zida biz sinf, kenglik, balandlik va X va Y koordinatalari haqidagi ma'lumotlarni ko'rsatamiz, shuningdek, har bir o'rnatilgan vidjet uchun bir xil funktsiyani rekursiv chaqiramiz.
    Belgilangan o'lchamlar va pozitsiyalar qo'ng'iroq qilishdan oldin vidjetlarga qo'llanilishi uchun root.mainloop()biz usulni chaqiramizroot.update()
    Bunday holda, vidjetlarning vizual ierarxiyasi unchalik chuqur emas - faqat ikkita element mavjud - oyna (Tk) va tugma (tugma), mos ravishda konsolning chiqishi quyidagicha bo'ladi:
    Tk eni=250 balandligi=200 x=104 y=104
    Tugma kengligi=39 balandligi=26 x=105 y=0
    Bu vidjet, tkinterda buton yaratish uchun ishlatiladi.

    Download 1,49 Mb.
    1   2   3   4   5   6




    Download 1,49 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    11 tajriba ishi Pythonda istisnolardan foydalanib misollar yechish

    Download 1,49 Mb.