1. "Etiket" (Label
) vidceti
Bu gün biz sizinlə bu möcüzəvi alətlə tanışlığımıza davam edirik, xüsusilə etiketlər (Label
) və mətn sahələri (Text
) barədə danışacağıq. Bəli, bu sizin tətbiqinizi yalnız çətin işləri yerinə yetirmək üçün deyil, həm də bu heyrətamiz uğurları istifadəçiyə çatdırmaq üçün lazım olan şeydir, istər qısa mesajlar, istərsə də böyük mətn həcmləri ilə.
Mətn sahələri ilə macəralarımıza başlamazdan əvvəl, bir az asanından başlayaq - etiketlərdən. Tkinter-də etiket - statik məlumatları nümayiş etdirməyə imkan verən kiçik və rahat bir vidcetdir. Demək olar ki, soyuducunuzdakı bir yapışqan kağız kimi, yalnız tətbiqinizdə. Başlıqlar üçün, təsvirlər üçün, hətta tam aforizmlər üçün istifadə edilə bilər.
Etiketlərin yaradılması və tərtibatı
Tkinter-də etiket yaratmaq yeni proqramlaşdırma dillərinin sintaksisini öyrənməkdən daha asandır (ilk dəfə necə çətin olduğunu xatırlayırsınız?). Budur etiketdən istifadə edən bir kod nümunəsi:
import tkinter as tk
# Əsas pəncərəni yaradırıq
root = tk.Tk()
root.title("Mənim ilk etiketim")
# Etiket yaradırıq
label = tk.Label(root, text="Salam, dünya!", font=("Arial", 14))
label.pack()
# Əsas hadisə dövrünü işə salırıq
root.mainloop()
Burada biz "Salam, dünya!" deyən bir etiket yaratmışıq. Gördüyünüz kimi, şrift və mətn ölçüsünü tənzimləyə bilərsiniz, bu da onu çox çevik edir. Özünüz üslubu, ölçüsü və hətta mətn rəngini seçə bilərsiniz ki, bu da sizin dizayn fikirlərinizə uyğun olsun.
2. "Mətn sahəsi" (Text) vidceti
İndi, artıq etiketlərlə tanış olduğumuza görə, bir pillə yuxarı qalxaq və mətn sahələrindən danışaq. Mətn sahələri (Text
) — sizin tətbiqinizdə quraşdırılmış dəftərə bənzəyir. Onlar böyük həcmli mətnləri göstərməyə və redaktə etməyə imkan verir. Bu, istifadəçilərə çoxlu mətnlə işləmək imkanı təqdim etməli olduğunuz zaman və ya sadəcə onlara həftə sonunuzda nə qədər kod yazdığınızı göstərmək istədiyiniz hallarda çox faydalıdır.
Mətn sahələrindən istifadə
Mətn sahəsi yaratmaq və ora bir mətn əlavə etmək üçün bir nümunə:
import tkinter as tk
# Əsas pəncərəni yaradırıq
root = tk.Tk()
root.title("Mətn sahəsi")
# Mətn sahəsini yaradırıq
text = tk.Text(root, height=10, width=40)
text.pack()
# Ora bir mətn əlavə edirik
text.insert(tk.END, "Bir zamanlar, uzaq bir qalaktikada...\n")
text.insert(tk.END, "Mətniniz burada...")
# Əsas hadisə dövranını işə salırıq
root.mainloop()
Nümunədən göründüyü kimi, biz insert
metodu vasitəsilə mətn sahəsinə mətn əlavə edə bilirik. tk.END
parametri göstərir ki, mətn cari mətnin sonuna əlavə olunmalıdır.
Şriftlərin və mətn üslublarının tənzimlənməsi
Hər iki vidcet növü üçün mətn üslublarını tənzimləyə bilərik. Bu, şriftləri, ölçüləri, rəngləri və daha çoxunu əhatə edir. Bunun etiket və mətn sahəsi üçün necə edildiyinə dair bir nümunə:
label = tk.Label(root, text="Salam, dünya!", font=("Courier", 16, "bold"), fg="blue")
label.pack()
text.tag_configure("highlight", font=("Verdana", 12), foreground="red")
text.insert(tk.END, "Bu mətn vurğulanacaq", "highlight")
Burada biz etiketdəki mətnin şrifti və rəngini dəyişdik və mətn sahəsindəki mətni vurğulamaq üçün taglardan istifadə etdik. Mətn sahəsi üçün tag_configure
istifadəsinə diqqət yetirin: o, bizə mətnin istənilən hissəsinə tətbiq edə biləcəyimiz bir "tag" yaratmağa imkan verir. Bu, mətn sahəsindəki mətnin ayrı-ayrı hissələrinin tərtibatını idarə etməyə imkan verən güclü bir vasitədir.
3. Proqramda inteqrasiya
İndi biz bilirik ki, etiketlər və mətn sahələrini necə yaradır və üslublaşdırırıq, gəlin onlardan bir proqramda istifadəsinin real bir nümunəsinə baxaq. Təsəvvür edin ki, biz sadə bir mətn redaktoru yaradırıq. Bu redaktor mətn fayllarını göstərmək və redaktə etmək qabiliyyətinə malik olacaq.
import tkinter as tk
from tkinter import filedialog
# Fayl açmaq üçün funksiya
def open_file():
file_path = filedialog.askopenfilename()
if file_path:
with open(file_path, 'r') as file:
content = file.read()
text.delete(1.0, tk.END)
text.insert(tk.END, content)
# Əsas pəncərəni yaradırıq
root = tk.Tk()
root.title("Mətn redaktoru")
# Widget-ları yaradırıq
label = tk.Label(root, text="Mətn redaktoru", font=("Arial", 16))
label.pack()
text = tk.Text(root, wrap='word', font=("Arial", 12))
text.pack(expand=1, fill='both')
open_button = tk.Button(root, text="Faylı aç", command=open_file)
open_button.pack()
# Əsas hadisə dövrünü işə salırıq
root.mainloop()
Bu nümunədə biz sadə bir proqram yaratdıq ki, bu da istifadəçiyə mətn fayllarını açmağa və mətn sahəsində onların məzmununu görməyə imkan verir. Button
widget-unu istifadə edərək biz fayl açma əməliyyatını open_file
funksiyasına bağladıq, hansı ki, fayl seçmək üçün filedialog
dialoq pəncərəsindən istifadə edir. Bu, sadəcə "Hello World" mətninə baxmaqdan daha maraqlıdır, elə deyilmi?
4. Mətn dəyişikliklərinin işlənməsi
Mətnlə işlədiyiniz zaman, dəyişikliklərə reaksiya göstərməli ola bilərsiniz: bu, mətni konsola (və ya fayla) çıxarmaq və ya interfeysin digər hissələrini yeniləmək ola bilər. Tkinter, mətn dəyişikliklərini izləmək üçün müxtəlif üsullar təqdim edir.
Ancaq əgər siz hər hansısa daha xüsusi bir iş görmək istəsəniz, məsələn, mətn axtarmaq və ya onu müəyyən bir şərtə görə əvəz etmək, uyğun funksiyaları özünüz yazmalı olacaqsınız. Başlanğıc üçün, get()
və delete()
metodlarını istifadə edərək widgetdakı mətni çıxarmaq və dəyişmək mümkündür.
Beləliklə, indi sizdə məlumatları yalnız göstərən deyil, həm də istifadəçinin onunla qarşılıqlı əlaqədə olmağa imkan verən mini-tətbiq yaratmaq üçün bütün alətlər var. Ümid edirəm ki, etiketlər və mətn sahələri haqqında dərs yalnız faydalı deyil, həm də maraqlı oldu. Növbəti dəfə tətbiqdə mətn sahəsini gördüyünüzdə, biləcəksiniz ki, bu, böyük ehtimalla Tkinter-də hazırlanıb, və etiket — sadəcə bir yazı deyil, istifadəçi ilə qarşılıqlı əlaqənin tam bir fəlsəfəsidir.
GO TO FULL VERSION