1. Checkbox-lar (Checkbutton)
Checkbox – kvadrat düymədir, hansı ki, ya aktiv, ya da deaktiv vəziyyətdə ola bilər. İstifadəçiyə bir və ya bir neçə seçim təqdim etmək lazım olduqda çox faydalıdır.
Checkbox yaratmaq
Checkbox yaratmaq üçün Checkbutton widget-dən istifadə olunur. Checkbox-un vəziyyətini (işarələnib və ya işarələnməyib) izləmək üçün adətən IntVar tipində dəyişən istifadə olunur. Bu dəyişən checkbox işarələnibsə 1 olur, işarələnməyibsə 0.
import tkinter as tk
# Checkbox-un vəziyyətini yoxlamaq üçün funksiya
def show_status():
print("Aktivdir" if var.get() == 1 else "Deaktivdir")
# Pəncərə yaratmaq
root = tk.Tk()
root.title("Checkbox nümunəsi")
# Vəziyyəti saxlamaq üçün dəyişən
var = tk.IntVar()
# var dəyişəninə bağlı checkbox
checkbox = tk.Checkbutton(root, text="Seçimi aktiv edin", variable=var, command=show_status)
checkbox.pack(pady=20)
root.mainloop()
Kodun izahı
-
variable=var: Checkbox-uvardəyişəninə bağlayır, hansı ki, checkbox-un hər bir vəziyyət dəyişikliyində yenilənir. -
show_status()funksiyası: Console-a checkbox-un cari vəziyyətini göstərir. Əgər checkbox işarələnibsə "Aktivdir" çıxır, əks halda — "Deaktivdir".
Bir neçə checkbox istifadə edilməsi
Əgər bir neçə müstəqil seçim lazımdırsa, hər biri öz dəyişəninə bağlı bir neçə checkbox yarada bilərsiniz.
# Vəziyyəti saxlamaq üçün dəyişənlər
option1 = tk.IntVar()
option2 = tk.IntVar()
# Checkbox-lar
check1 = tk.Checkbutton(root, text="Seçim 1", variable=option1)
check2 = tk.Checkbutton(root, text="Seçim 2", variable=option2)
check1.pack()
check2.pack()
2. Radiobutton (Radiobutton)
Radiobutton – istifadəçinin yalnız birini seçə biləcəyi yuvarlaq düymələrdən ibarət dəstdir. Onlar, istifadəçiyə bir neçə variantdan birini seçmək lazım olduqda faydalıdır.
Radiobutton yaradılması
Radiobutton yaratmaq üçün Radiobutton widjeti istifadə olunur. Radiobutton-ları əlaqələndirmək və seçimlərini bir-birindən asılı etmək üçün onların hamısı bir dəyişənə (IntVar və ya StringVar) bağlı olmalıdır.
# Seçilmiş variantı göstərən funksiya
def show_choice():
print(f"Seçilmiş variant {choice.get()}")
# Seçimi izləmək üçün dəyişən
choice = tk.IntVar()
# Radiobutton-lar
radio1 = tk.Radiobutton(root, text="Variant 1", variable=choice, value=1, command=show_choice)
radio2 = tk.Radiobutton(root, text="Variant 2", variable=choice, value=2, command=show_choice)
radio3 = tk.Radiobutton(root, text="Variant 3", variable=choice, value=3, command=show_choice)
radio1.pack()
radio2.pack()
radio3.pack()
Kodun izahı
-
variable=choice: Bütün radiobutton-ları bir dəyişənəchoicebağlayır ki, onları bir-birindən asılı etsin. -
value: İstifadəçi bu radiobutton-u seçərsə, dəyişəninchoicealacağı dəyəri göstərir. -
show_choice()funksiyası: Konsolda seçilmiş variantı göstərir.
Mətn dəyərləri olan radiobutton-lar
Radiobutton-ları StringVar tipli dəyişənə də bağlaya bilərsiniz ki, mətn dəyərlərindən istifadə edəsiniz.
# Mətn seçimi üçün dəyişən
color_choice = tk.StringVar()
# Mətn dəyərləri olan radiobutton-lar
radio_red = tk.Radiobutton(root, text="Qırmızı", variable=color_choice, value="Red")
radio_blue = tk.Radiobutton(root, text="Mavi", variable=color_choice, value="Blue")
radio_green = tk.Radiobutton(root, text="Yaşıl", variable=color_choice, value="Green")
radio_red.pack()
radio_blue.pack()
radio_green.pack()
3. Keçid düymələri (Spinbox)
Keçid düymələri istifadəçiyə diapazondan sayısal bir dəyəri seçməyə imkan verir. Bu vidjet yaş və ya miqdar kimi sayısal məlumatların daxil edilməsi üçün faydalıdır.
Keçid düyməsinin yaradılması
Tkinter-də keçid düyməsi Spinbox vidjeti istifadə edilərək yaradılır, bu da istifadəçiyə dəyəri əl ilə daxil etməyə və ya oxlarla seçməyə imkan verir.
# Seçilmiş dəyəri göstərmək üçün funksiya
def show_spin_value():
print(f"Dəyər: {spin.get()}")
# 1-dən 10-a qədər keçid düyməsi
spin = tk.Spinbox(root, from_=1, to=10, command=show_spin_value)
spin.pack(pady=20)
Kodun izahı
from_vəto: Keçid düyməsi üçün dəyər aralığını müəyyən edir.show_spin_value()funksiyası: Hər dəyişiklikdə seçilmiş dəyəri konsolda göstərir.
Addım və dəyərlərin tənzimlənməsi
increment parametri keçid düyməsinin addımını müəyyən etməyə imkan verir, values isə xüsusi dəyərləri təyin etməyə imkan verir.
# 2 addım ilə keçid düyməsi
spin_step = tk.Spinbox(root, from_=0, to=20, increment=2)
spin_step.pack(pady=5)
# Xüsusi dəyərlərlə keçid düyməsi
spin_values = tk.Spinbox(root, values=("Kiçik", "Orta", "Böyük"))
spin_values.pack(pady=5)
4. Tətbiq nümunəsi
Checkbox-lar, radio düymələr və dəyişdiricilər olan tətbiq nümunəsi
İndi hər şeyi bir yerə yığaq və checkbox-lar, radio düymələr və dəyişdiricilər olan interfeys yaradaq ki, istifadəçi bir neçə seçim edə bilsin və nəticəni görə bilsin.
import tkinter as tk
# Əsas pəncərənin yaradılması
root = tk.Tk()
root.title("Checkbox-lar, radio düymələr və dəyişdiricilər ilə nümunə")
root.geometry("300x300")
# Seçilən dəyərlərin göstərilməsi üçün funksiyalar
def show_selections():
selections = []
selections.append(f"Checkbox aktivdir: {'Bəli' if option.get() == 1 else 'Xeyr'}")
selections.append(f"Seçilmiş rəng: {color_choice.get()}")
selections.append(f"Say: {spin.get()}")
message_label.config(text="\n".join(selections))
# Checkbox
option = tk.IntVar()
checkbox = tk.Checkbutton(root, text="Seçimi aktivləşdir", variable=option)
checkbox.pack(pady=5)
# Radio düymələr
color_choice = tk.StringVar(value="Qırmızı")
tk.Label(root, text="Rəng seçin:").pack()
radio_red = tk.Radiobutton(root, text="Qırmızı", variable=color_choice, value="Qırmızı")
radio_blue = tk.Radiobutton(root, text="Mavi", variable=color_choice, value="Mavi")
radio_green = tk.Radiobutton(root, text="Yaşıl", variable=color_choice, value="Yaşıl")
radio_red.pack()
radio_blue.pack()
radio_green.pack()
# Dəyişdirici
tk.Label(root, text="Say:").pack()
spin = tk.Spinbox(root, from_=1, to=10)
spin.pack(pady=5)
# Seçilmiş dəyərləri göstərmək üçün düymə
show_button = tk.Button(root, text="Seçimləri göstər", command=show_selections)
show_button.pack(pady=10)
# Nəticələrin göstərilməsi üçün label
message_label = tk.Label(root, text="", justify="left")
message_label.pack(pady=5)
root.mainloop()
Tam nümunənin izahı
- Checkbox: "Seçimi aktivləşdir" vəziyyətini işarələyir.
- Radio düymələr: Üç rəngdən birini seçməyə imkan verir.
- Dəyişdirici: 1-dən 10-a qədər say seçməyə imkan verir.
- "Seçimləri göstər" düyməsi: Bütün widget-ların cari vəziyyətlərini
message_labeladlı label-ə çıxarır.
GO TO FULL VERSION