توفر واجهة OptionMenu
في Tkinter طريقة بسيطة وفعالة لإنشاء قوائم منسدلة في تطبيقات واجهة المستخدم الرسومية الخاصة بك بلغة بايثون. يغطي هذا الدليل إنشاء قوائم منسدلة أساسية وتعزيزها بوظائف يتم تشغيلها بواسطة تغييرات اختيار المستخدم.
محتويات
إنشاء قائمة منسدلة أساسية
أساس قائمة Tkinter المنسدلة هو عنصر واجهة المستخدم ttk.OptionMenu
. يوضح هذا المثال تطبيقه الأساسي:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("قائمة منسدلة Tkinter أساسية")
selected_option = tk.StringVar(root)
selected_option.set("الخيار 1") # القيمة الافتراضية
options = ["الخيار 1", "الخيار 2", "الخيار 3"]
option_menu = ttk.OptionMenu(root, selected_option, *options)
option_menu.pack(pady=20)
root.mainloop()
ينشئ هذا الكود نافذة، ويبدأ StringVar
لتخزين الخيار المحدد، ويحدد قائمة بالخيارات، ويستخدم ttk.OptionMenu
لإنشاء القائمة المنسدلة. يقوم *options
بفك ضغط القائمة، مما يوفر كل خيار كحجة منفصلة إلى OptionMenu
. يتم تحديث القيمة المحددة تلقائيًا في selected_option
.
الاستجابة لتغييرات الاختيار
لإضافة التفاعل، يمكننا تنفيذ التعليمات البرمجية كلما اختار المستخدم خيارًا مختلفًا. يتم ذلك باستخدام طريقة trace
لـ StringVar
:
import tkinter as tk
from tkinter import ttk
def option_changed(new_value):
print(f"الخيار المحدد: {new_value}")
# أضف إجراءاتك المخصصة هنا، مثل: تحديث عناصر واجهة المستخدم الأخرى،
# إجراء طلبات شبكة، إلخ.
root = tk.Tk()
root.title("قائمة منسدلة Tkinter تفاعلية")
selected_option = tk.StringVar(root)
selected_option.set("الخيار 1")
options = ["الخيار 1", "الخيار 2", "الخيار 3"]
option_menu = ttk.OptionMenu(root, selected_option, *options)
option_menu.pack(pady=20)
selected_option.trace("w", lambda *args: option_changed(selected_option.get()))
root.mainloop()
يتم استدعاء دالة option_changed
كلما تغير متغير selected_option
. تسجل طريقة trace("w", ...)
هذه الدالة ليتم استدعاؤها عند الكتابة على المتغير. تضمن دالة lambda تمرير القيمة الحالية إلى option_changed
. استبدل عبارة print
بمنطق تطبيقك.
يُنشئ هذا النهج قائمة منسدلة ديناميكية ومتجاوبة، مما يعزز تفاعل المستخدم ووظائف التطبيق.