GUI Programming

إنشاء قوائم منسدلة ديناميكية باستخدام Tkinter

Spread the love

توفر واجهة OptionMenu في Tkinter طريقة بسيطة وفعالة لإنشاء قوائم منسدلة في تطبيقات واجهة المستخدم الرسومية الخاصة بك بلغة بايثون. يغطي هذا الدليل إنشاء قوائم منسدلة أساسية وتعزيزها بوظائف يتم تشغيلها بواسطة تغييرات اختيار المستخدم.

محتويات

  1. إنشاء قائمة منسدلة أساسية
  2. الاستجابة لتغييرات الاختيار

إنشاء قائمة منسدلة أساسية

أساس قائمة 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 بمنطق تطبيقك.

يُنشئ هذا النهج قائمة منسدلة ديناميكية ومتجاوبة، مما يعزز تفاعل المستخدم ووظائف التطبيق.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *