Yakuniy Jadvalni Ko'rsatish va Saqlash:
create_final_table
metodi orqali yakuniy jadval yaratiladi.
Yakuniy jadval orqali tanlangan fanga, o'qituvchiga va guruhga oid
ma'lumotlar Save tugmasi orqali jadvalga qo'shiladi va SQLite
ma'lumotlar bazasiga ham saqlanadi.
Izohlar va maslahatlar:
Kod o'zini to'liqroq tushunish uchun yoritilgan, lekin bazi joylarda kodni
o'zgartirish, simplifikatsiya qilish yoki tozalash mumkin.
create_final_table
metodi ikki marta yaratilgan. Ikkinchi variantda
self.final_table
ni class obyektiga o'zlashtirildi va Treeview jadvallarini
saqlab turuvchi atribut sifatida ishlatildi.
Kodni yaxshi tahlil qilish va to'liq tushunish uchun har bir qismga
kommentariyalarni qo'shishingiz yaxshi bo'ladi.
Xatoliklarni aniqlab chiqqanda ularga to'g'ridan-to'g'ri dasturda xabar berish
funksiyasini qo'shishingiz foydalidir.
Ushbu dastur osonlik va ko'p funksiyali bo'lishi uchun yangi funksiyalarni
qo'shish, o'zgartirish va to'liq tahlil qilish mumkin
TKINTERGA KIRISH:
Tkinter, Pythonning standart kitobxonasida joylashgan, asosan
Windows, Linux, va MacOS platformalarida ishlaydigan, dasturlash
tillari uchun foydalanish mumkin bo'lgan GUI (grafik interfeys)
modulidir.
Asosiy Hususiyatlari:
Platforma Mustaqil:
Tkinter, ko'plab platformalarda ishlaydi va dasturlarni o'zgarishsiz
qo'llab-quvvatlaydi.
Oddiy Ishtirok:
Tkinter, oson o'rganiladi va oddiy interfeys elementlarini yaratish uchun
yaxshi tanilgan. Bunga masalan, tugma, matn kiritish qutisi, matn
kutubxona va h.k. kiradi.
Asosiy Elementlar:
Tkinterda qo'llaniladigan asosiy elementlar quyidagilar: Tk (asosiy
oyna), Label (matn kutubxona), Button (tugma), Entry (matn kiritish
qutisi), Text (katta matn kutubxona) va h.k.
Oyna Yaratish:
Dastur boshlang'ichida Tk obyekti yaratiladi va bu obyekt asosiy
oynasini (main window) ifodalaydi.
O'yin doirasi (Main Loop): Tkinter-da o'yin doirasi, oyna yaratilgan va
barcha
hodisalar bajarilayotgan joy. Siz uni quyidagi kabi yaratishingiz
mumkin:
import tkinter as tk
root = tk.Tk()
root.mainloop()
3. Widgetlar: Tkinter-da widgetlar, tizim interfeysi elementlari uchun
nomlanadi.
Tugmalar (Button), matn kiritish maydonlari (Entry), oynalar (Canvas),
yorliqlar
(Label), ro'yxatlar (Listbox), va boshqalar kabi widgetlar mavjud.
1. Tugmalar (Buttons)
Button vidjeti Python dasturida tugmachalarni qo'shish uchun
ishlatiladi. Ushbu tugmachalar
tugmachalarning maqsadini anglatadigan matn yoki rasmlarni aks
ettirishi mumkin. Tugmani
bosganingizda avtomatik ravishda chaqiriladigan tugmachaga funktsiya
yoki metod biriktirishingiz
mumkin. Tugma yaratish uchun:
button = tk.Button(root, text="Bosing", command=my_function)
1.
Matn kiritish maydonlari (Entry):
Entry vidjeti foydalanuvchidan bitta qatorli matn satrlarini qabul
qilish uchun ishlatiladi.
Agar tahrirlash mumkin bo'lgan bir nechta matn satrlarini
namoyish qilmoqchi bo'lsangiz, u holda
Textwidget-dan foydalanishingiz kerak.
Agar siz foydalanuvchi tomonidan o'zgartirilishi mumkin
bo'lmagan bir yoki bir nechta matn
satrini ko'rsatishni xohlasangiz, u holda Label vidjetidan
foydalanishingiz kerak.
Matn kiritish maydonini yaratish:
entry = tk.Entry(root)
2.
Oyna (Canvas)
Canvas - bu rasmlar yoki boshqa murakkab sxemalarni chizish uchun
mo'ljallangan to'rtburchak
maydon. Siz canvasga grafikalar, matnlar, vidjetlar yoki ramkalarni
joylashtirishingiz mumkin.
Oyna yaratish:
canvas = tk.Canvas(root, width=300, height=200)
3.
Yorliqlar (Labels):
Ushbu vidjet matn yoki rasmlarni joylashtirishingiz mumkin bo'lgan
ekran oynasini amalga
oshiradi. Ushbu vidjet ko'rsatadigan matnni xohlagan vaqtda yangilash
mumkin.
Bundan tashqari, matnning bir qismini ostiga chizish (masalan,
klaviatura yorlig'ini aniqlash) va
matnni bir nechta satrlar bo'ylab uzatish mumkin.
Yorliq yaratish:
label = tk.Label(root, text="Salom, Tkinter!")
4.
Oyna ichidagi joylashuvi: pack, grid, yoki place metodlaridan biri
orqali widgetlarni joylashtirish mumkin .
Tkinter pack() usuli
Tkinterdagi pack() metodi haqida aytmoqchi bo’lsak u geometriya
menejeri vidjetlarni ota-ona vidjetiga joylashtirishdan oldin ularni
bloklarga ajratadi.
Sintaksis :
widget.pack (pack_options)
Mana mumkin bo'lgan parametrlar ro'yxati :
expand (kengaytirish) - rostga o'rnatilganda, vidjet vidjetning ota-
onasida ishlatilmagan bo'sh joyni to'ldirish uchun kengayadi.
fill (plomba) - vidjet paketlovchi tomonidan ajratilgan har qanday
qo'shimcha joyni to'ldiradimi yoki o'zining minimal o'lchamlarini ushlab
turadimi-yo'qligini aniqlaydi: NONE
(standart), X (faqat gorizontal ravishda to'ldiring), Y (faqat vertikal
ravishda to'ldiring) yoki BOTH (ikkala gorizontal va vertikal ravishda
to'ldiring) ).
side (yon) - Ota-ona vidjetining qaysi tomoniga qarshi ekanligini
aniqlaydi: TOP (standart), BOTTOM, LEFT yoki RIGHT.
Endilikda biz grid metodi haqida aytmoqchi bo’lsak uning parametrklari
quyidagilardan iborat :
Tkinter grid() usuli
column (ustun) - Vidjetni joylashtiradigan ustun; standart 0 (eng chap
ustun).
columnspan - qancha ustun vidjetni egallaydi; standart 1.
ipadx, ipady - Vidjet chegaralarida gorizontal va vertikal ravishda
vidjetni to'ldirish uchun
qancha piksel.
padx, pady - v chegaralaridan tashqarida gorizontal va vertikal ravishda
vidjetni qancha
pikselga to'ldirish kerak.
row (qator) - vidjetni joylashtiradigan qator; sukut bo'yicha hali ham
bo'sh bo'lgan birinchi qator.
rowspan - nechta qatorli vidjet egallaydi; standart 1.
stick (yopishqoq) - Agar katak vidjetdan kattaroq bo'lsa, nima qilish
kerak. Odatiy bo'lib,
sticky = " bilan vidjet o'z katakchasida joylashgan. yopishqoq bo'lishi
mumkin, nol yoki
undan ko'p N, E, S, W, NE, NW, SE va SW ning biriktirilishi, vidjet
yopishgan katakning
yon va burchaklarini ko'rsatadigan kompas yo'nalishlari.
Tkinter place () usuli
Ushbu geometriya menejeri vidjetlarni ularni ota-ona vidjetiga ma'lum
joyga joylashtirish orqali
tartibga soladi.
Sintaksis
widget.place (place_parametrlar)
Mana mumkin bo'lgan parametrlar ro'yxati :
anchor
- vidjetning boshqa variantlariga tegishli joy: N, E, S, W, NE,
NW, SE yoki SW bo'lishi mumkin, vidjetning burchaklari va yonlarini
ko'rsatadigan kompas yo'nalishlari; sukut bo'yicha NW (vidjetning
yuqori chap burchagi)
|