• II BOB. Tkinter yordamida Python GUI ilovasini yaratish
  • Respublikasi axborot texnologiyalari va kommunikatsiyalarini




    Download 215,45 Kb.
    bet6/9
    Sana15.05.2024
    Hajmi215,45 Kb.
    #234385
    1   2   3   4   5   6   7   8   9
    Bog'liq
    Omonovsh1

    Nima uchun aynan Python?





        • Python turli xil platformalarda ishlaydi (Windows, Mac, Linux, Raspberry Pi va boshqalar).

        • Python ingliz tiliga o'xshash oddiy sintaksisga ega.

        • Python dasturlash tiliga bo'lgan talab yildan yilga oshib kelmoqda. CodingDojo portalining tadqiqotlariga ko'ra, 2020 yilda aynan Python tilida dasturlovchi mutaxassislarga eng ko'p talab bo'lgan.

        • Python Artificial Intelligence (Sun'iy intellekt) va Data Science (Ulkan ma'lumotlar bilan ishlash) sohalarining tili hisoblanadi. Bugungi kunda keng ommalashib borayotgan sun'iy intellekt asosida ishlovchi dasturlarning aksari Pythonda yozilgan. Bu sohalardagi mutaxassislar bugungi kunda eng noyob va qimmatbaho kadrlar hisoblanadi.

        • Keng qamrovli va universal til. Python dasturlari deyarli barcha operativ tizimlarda va platformalarda ishlaydi.

        • O'rganish uchun ham, tushunish uchun ham juda qulay va sodda kod




    II BOB. Tkinter yordamida Python GUI ilovasini yaratish




      1. Pack() va place() geometriya menejeri haqida


    Geometriya menejeri vidjetlarni belgilangan tartibda yoki oynaga joylashtirish uchun qadoqlash algoritmidan.pack() foydalanadi . Berilgan vidjet uchun qadoqlash algoritmi ikkita asosiy bosqichdan iborat:Frame





    1. Vidjetni ushlab turish uchun etarlicha baland (yoki keng) va oynadagi qolgan kenglikni (yoki balandlikni) bo'sh joy bilan

    to'ldiradigan posilka deb nomlangan to'rtburchaklar maydonni hisoblang
    .

    1. Agar boshqa joy ko'rsatilmagan bo'lsa, vidjetni posilkada markazga qo'ying.

    .pack()kuchli, lekin uni tasavvur qilish qiyin bo'lishi mumkin. Tushunishning eng yaxshi usuli .pack()bu ba'zi misollarni ko'rib


    chiqishdir. .pack()Uchta Labelvidjetni ga aylantirganingizda nima bo'lishini ko'ring Frame:

    .pack()FrameHar birini sukut bo'yicha oldingisining ostiga, ular oynaga


    tayinlangan tartibda joylashtiradi :

    Ularning har biri Frameeng yuqori mavjud joyga joylashtirilgan. Shuning uchun, qizil Frameoynaning yuqori qismida joylashgan. Keyin sariq rang qizil rangning biroz ostiga, ko'k esa sariq rangning pastiga Framejoylashtiriladi
    .Frame

    Uchta ko'rinmas posilka mavjud bo'lib, ularning har biri uchta Framevidjetdan birini o'z ichiga oladi. Har bir posilka derazadek keng va Frameuning ichida joylashganicha baland. Chunki ularning har biri uchun qachon


    chaqirilganligi aniqlanmagan, ularning hammasi posilka ichida joylashgan. Shuning uchun ularning har biri oynaning markazida joylashgan..pack()Frame,Frame

    .pack()vidjet joylashtirishni aniqroq sozlash uchun ba'zi kalit so'z argumentlarini qabul qiladi. Misol uchun, kalit so'z


    argumentini ramkalar fillqaysi yo'nalishda to'ldirishini belgilashingiz mumkin
    . Variantlar tk.Xgorizontal yo'nalishda to'ldirish, tk.Yvertikal to'ldirish
    va tk.BOTHikkala yo'nalishda to'ldirishdir. Har biri butun oynani gorizontal ravishda to'ldirishi uchun uchta freymni qanday joylashtirishingiz mumkin:

    E'tibor bering, vidjetlarning widthhech birida o'rnatilmagan Frame. widthendi


    kerak emas, chunki har bir ramka .pack()siz o'rnatishingiz mumkin bo'lgan har qanday kenglikni bekor qilib, gorizontal ravishda to'ldirishga o'rnatiladi.

    Ushbu skript tomonidan ishlab chiqarilgan oyna quyidagicha ko'rinadi:





    Oynani to'ldirishning yoqimli jihatlaridan biri .pack()shundaki, plomba oyna o'lchamlarini o'zgartirishga javob beradi . Bu qanday ishlashini ko'rish uchun oldingi skript tomonidan yaratilgan oynani kengaytirib ko'ring. Oynani kengaytirganda, uchta Framevidjetning kengligi oynani to'ldirish uchun o'sadi:



    E'tibor bering, vidjetlar Framevertikal yo'nalishda kengaymaydi.


    Kalit sideso'z argumenti .pack()vidjetni oynaning qaysi tomoniga joylashtirish kerakligini ko'rsatadi. Bular mavjud variantlar:





        • tk.TOP

        • tk.BOTTOM

        • tk.LEFT

        • tk.RIGHT

    Agar siz ni o'rnatmasangiz side, u holda .pack()avtomatik ravishda yangi vidjetlardan foydalanadi tk.TOPva oynaning yuqori qismiga yoki vidjet bilan band bo'lmagan oynaning eng yuqori qismiga joylashtiradi. Misol uchun, quyidagi skript chapdan o'ngga yonma-yon uchta ramka qo'yadi va oynani vertikal ravishda to'ldirish uchun har bir freymni kengaytiradi:

    heightBu safar oynani biroz balandlikka ko'tarish uchun kamida bitta ramkada kalit so'z argumentini ko'rsatishingiz kerak .




    Olingan oyna quyidagicha ko'rinadi:

    fill=tk.XXuddi siz oynaning gorizontal o'lchamini o'zgartirganda freymlarni sezgir qilishni o'rnatganingizdek , fill=tk.Yoynani vertikal ravishda o'zgartirganda ham freymlarni sezgir qilishni sozlashingiz mumkin:



    widthTartibni chinakam sezgir qilish uchun va atributlaridan foydalanib, ramkalaringiz uchun boshlang'ich o'lchamni o'rnatishingiz mumkin height. Keyin fillkalit so'z argumentini .pack()to'ga o'rnating tk.BOTHva expandkalit so'z argumentini quyidagicha o'rnating True:

    Python




    Yuqoridagi skriptni ishga tushirganingizda, dastlab oldingi misolda yaratilgan
    oynaga o'xshash oynani ko'rasiz. Farqi shundaki, endi siz oynaning o'lchamini xohlaganingizcha o'zgartirishingiz mumkin va ramkalar kengayadi va derazani sezgir tarzda to'ldiradi:



    Download 215,45 Kb.
    1   2   3   4   5   6   7   8   9




    Download 215,45 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Respublikasi axborot texnologiyalari va kommunikatsiyalarini

    Download 215,45 Kb.