يوفر عنصر واجهة المستخدم Radiobutton
في Tkinter طريقة سهلة الاستخدام لعرض مجموعة من الخيارات المتبادلة. يستكشف هذا البرنامج التعليمي وظائفه، ويرشدك إلى إنشاء وتخصيص والاستجابة لاختيارات المستخدم.
جدول المحتويات:
1. إنشاء أزرار الاختيار
لإنشاء أزرار اختيار، يجب ربط كل منها بمتغير مشترك (عادةً StringVar
). هذا يضمن أنه يمكن تحديد زر واحد فقط ضمن المجموعة في كل مرة. إليك كيفية إنشاء مجموعة أساسية:
import tkinter as tk
root = tk.Tk()
root.title("مثال على زر الاختيار في Tkinter")
selected_option = tk.StringVar(value="الخيار أ")
radio_button_a = tk.Radiobutton(root, text="الخيار أ", variable=selected_option, value="الخيار أ")
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="الخيار ب", variable=selected_option, value="الخيار ب")
radio_button_b.pack(anchor=tk.W)
radio_button_c = tk.Radiobutton(root, text="الخيار ج", variable=selected_option, value="الخيار ج")
radio_button_c.pack(anchor=tk.W)
root.mainloop()
يقوم هذا الكود بإنشاء ثلاثة أزرار اختيار. تربطهم الوسيطة variable
، وتعيّن السمة value
قيمة لاختيار كل زر.
2. استرجاع القيم المحددة
إن الوصول إلى القيمة المحددة أمر مباشر. ما عليك سوى استخدام طريقة get()
على المتغير المشترك:
import tkinter as tk
root = tk.Tk()
root.title("الحصول على قيمة زر الاختيار")
selected_option = tk.StringVar(value="الخيار أ")
# ... (إنشاء زر الاختيار كما هو موضح أعلاه) ...
def get_selected():
print(f"الخيار المحدد: {selected_option.get()}")
button = tk.Button(root, text="الحصول على القيمة", command=get_selected)
button.pack()
root.mainloop()
يضيف هذا المثال زرًا يطبع الخيار المحدد عند النقر عليه. تسترد طريقة get()
القيمة الحالية لـ StringVar
.
3. تخصيص المظهر
يمكنك تعديل الجوانب المرئية لزر الاختيار. على سبيل المثال، يتحكم الخيار indicatoron
في ظهور المؤشر، ويغيّر selectcolor
اللون عند التحديد:
import tkinter as tk
root = tk.Tk()
root.title("تخصيص مظهر زر الاختيار")
selected_option = tk.StringVar(value="الخيار أ")
radio_button_a = tk.Radiobutton(root, text="الخيار أ", variable=selected_option, value="الخيار أ", indicatoron=False, selectcolor="lightgreen")
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="الخيار ب", variable=selected_option, value="الخيار ب", selectcolor="lightblue")
radio_button_b.pack(anchor=tk.W)
root.mainloop()
يُظهر هذا كيفية إخفاء المؤشر وتغيير لون التحديد. جرّب أنماطًا أخرى لتحقيق المظهر الذي تريده.
4. استخدام دوال الاستدعاء
من أجل نهج أنظف وأكثر استجابة، استخدم الخيار command
لربط دالة مباشرة بكل زر اختيار:
import tkinter as tk
root = tk.Tk()
root.title("استدعاء زر الاختيار")
def option_selected():
print(f"الخيار المحدد: {selected_option.get()}")
selected_option = tk.StringVar(value="الخيار أ")
radio_button_a = tk.Radiobutton(root, text="الخيار أ", variable=selected_option, value="الخيار أ", command=option_selected)
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="الخيار ب", variable=selected_option, value="الخيار ب", command=option_selected)
radio_button_b.pack(anchor=tk.W)
root.mainloop()
تنفذ هذه الطريقة option_selected
كلما تم تحديد زر، مما يوفر حلاً أكثر كفاءة وأناقة للتعامل مع تفاعلات المستخدم.