اذهب إلى المحتوى

السؤال

نشر (معدل)

مرحبا , 

اعمل في تطبيق سطح مكتب بلغة Python و مكتبة Tkinter 

و لككني اريد ان تتغير قيم القائمة المنسدلة في التطبيق باستخدام متغيرات Tkinter مثل (()StringVar) 

ارجو منكم مساعدتي 

و شكرا مقدما.

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال

Recommended Posts

  • 0
نشر

 هناك متغيرات في Tkinter مثل StringVar لتحديث قيم القوائم المنسدلة في تطبيقك، وفيما يلي مثال يوضح الأمر لك:

import tkinter as tk
from tkinter import ttk

def update_dropdown():
    selected_value.set("New Value")  # تحديث قيمة المتغير

root = tk.Tk()

selected_value = tk.StringVar(root)
selected_value.set("Default Value")  # القيمة الافتراضية للمتغير

dropdown = ttk.Combobox(root, textvariable=selected_value, values=["Option 1", "Option 2", "Option 3"])
dropdown.pack()

update_button = tk.Button(root, text="تحديث القائمة", command=update_dropdown)
update_button.pack()

root.mainloop()

قمت بإنشاء متغير selected_value باستخدام StringVar وتعيين القيمة الافتراضية له، ثم إنشاء قائمة منسدلة باستخدام ttk.Combobox وربطها بالمتغير selected_value باستخدام الخاصية textvariable.

وعند تحديث قيمة المتغير باستخدام الدالة set()، سيتم تحديث قيمة القائمة المنسدلة تلقائيًا.

أيضًا قمت بإضافة زر يقوم بتحديث قيمة المتغير عند النقر عليه، وبإمكانك تغيير القيم المتاحة في القائمة المنسدلة بتعديل قائمة values الموجودة في ttk.Combobox.

 

  • 0
نشر

يمكن تحديث قيمة قائمة منسدلة في Tkinter باستخدام المتغيرات النصية StringVar. يمكنك تعريف متغير StringVar باستخدام الدالة StringVar() وتعيينه لقائمة منسدلة باستخدام خاصية القيمة (value) للقائمة المنسدلة.

فيما يلي مثال عن كيفية تحديث قيمة قائمة منسدلة باستخدام متغير StringVar:

import tkinter as tk

root = tk.Tk()

# تعريف متغير StringVar 
selected_option = tk.StringVar()

# قائمة المنسدلة
options = ['Option 1', 'Option 2', 'Option 3']
dropdown = tk.OptionMenu(root, selected_option, *options)
dropdown.pack()

# دالة التحديث لقائمة المنسدلة
def update_dropdown():
    new_options = ['New Option 1', 'New Option 2', 'New Option 3']
    dropdown['menu'].delete(0, 'end')
    for option in new_options:
        dropdown['menu'].add_command(label=option, command=tk._setit(selected_option, option))
    selected_option.set(new_options[0])

# زر التحديث
update_button = tk.Button(root, text="Update Dropdown", command=update_dropdown)
update_button.pack()

root.mainloop()

في هذا المثال، تم تعريف متغير StringVar باسم selected_option وتعيينه لقائمة منسدلة باستخدام خاصية القيمة (value) للقائمة المنسدلة. ثم تم إنشاء دالة update_dropdown() التي تحدث القائمة المنسدلة باستخدام خاصية القائمة (menu) وتعيين الخيار المحدد لأول خيار في القائمة الجديدة. وأخيرًا، تم إنشاء زر update_button الذي يقوم بتحديث قائمة المنسدلة عند النقر عليه.

  • 0
نشر
بتاريخ 2 ساعة قال Mustafa Suleiman:

 هناك متغيرات في Tkinter مثل StringVar لتحديث قيم القوائم المنسدلة في تطبيقك، وفيما يلي مثال يوضح الأمر لك:

import tkinter as tk
from tkinter import ttk

def update_dropdown():
    selected_value.set("New Value")  # تحديث قيمة المتغير

root = tk.Tk()

selected_value = tk.StringVar(root)
selected_value.set("Default Value")  # القيمة الافتراضية للمتغير

dropdown = ttk.Combobox(root, textvariable=selected_value, values=["Option 1", "Option 2", "Option 3"])
dropdown.pack()

update_button = tk.Button(root, text="تحديث القائمة", command=update_dropdown)
update_button.pack()

root.mainloop()

قمت بإنشاء متغير selected_value باستخدام StringVar وتعيين القيمة الافتراضية له، ثم إنشاء قائمة منسدلة باستخدام ttk.Combobox وربطها بالمتغير selected_value باستخدام الخاصية textvariable.

وعند تحديث قيمة المتغير باستخدام الدالة set()، سيتم تحديث قيمة القائمة المنسدلة تلقائيًا.

أيضًا قمت بإضافة زر يقوم بتحديث قيمة المتغير عند النقر عليه، وبإمكانك تغيير القيم المتاحة في القائمة المنسدلة بتعديل قائمة values الموجودة في ttk.Combobox.

 

عذرا استاذ مصطفى و لكن وكما يبدو لي انك لم تعي ما اقصد 

انا اريد تبديل القيم المتاحة و ليس القيمة المحددة 

اشكرك على الأجابة

  • 0
نشر

تستطيع استخدام الأسلوب configure للقائمة المنسدلة (Combobox) وتحديث قائمة القيم.

import tkinter as tk
from tkinter import ttk

def update_dropdown_values():
    new_values = ["New Option 1", "New Option 2", "New Option 3"]
    dropdown['values'] = new_values

root = tk.Tk()

dropdown = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
dropdown.pack()

update_button = tk.Button(root, text="تحديث القائمة", command=update_dropdown_values)
update_button.pack()

root.mainloop()

 وفي الكود تم إنشاء قائمة منسدلة (Combobox) وتعيين القيم الافتراضية لها باستخدام values الموجودة في البداية، ثم بإضافة زر يقوم بتحديث قيم القائمة المنسدلة عند النقر عليه.

وعند النقر على الزر، تستدعى الدالة update_dropdown_values التي تقوم بتعديل values للقائمة المنسدلة وتعيين القيم الجديدة.

  • 0
نشر
بتاريخ 3 دقائق مضت قال Mustafa Suleiman:

تستطيع استخدام الأسلوب configure للقائمة المنسدلة (Combobox) وتحديث قائمة القيم.

import tkinter as tk
from tkinter import ttk

def update_dropdown_values():
    new_values = ["New Option 1", "New Option 2", "New Option 3"]
    dropdown['values'] = new_values

root = tk.Tk()

dropdown = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
dropdown.pack()

update_button = tk.Button(root, text="تحديث القائمة", command=update_dropdown_values)
update_button.pack()

root.mainloop()

 وفي الكود تم إنشاء قائمة منسدلة (Combobox) وتعيين القيم الافتراضية لها باستخدام values الموجودة في البداية، ثم بإضافة زر يقوم بتحديث قيم القائمة المنسدلة عند النقر عليه.

وعند النقر على الزر، تستدعى الدالة update_dropdown_values التي تقوم بتعديل values للقائمة المنسدلة وتعيين القيم الجديدة.

انا استخدم هذه الطريقة بالفعل 

شكرا استاذ مصطفى و لكن انا اريد لقيم القائمة المنسدلة ان تتغير من دون configure

لانه يوجد لدي اكثر من مكان لتخزين نفس القيم (قوائم منسدلة عديدة)

يا لفرحتي لقد فعلتها و يسرني مشاركتكم 

هذا هو ما اريده 

import tkinter as tk
import tkinter.ttk as ttk

root = tk.Tk()

# القائمة المنسدلة
options = ['Option 1', 'Option 2', 'Option 3']
dropdown = ttk.Combobox(root, values=options)
dropdown.pack()

# دالة التحديث للقائمة المنسدلة
def update_dropdown():
    new_options = ['New Option 1', 'New Option 2', 'New Option 3']
    dropdown['values'] = new_options

# زر التحديث
update_button = tk.Button(root, text="Update Dropdown", command=update_dropdown)
update_button.pack()

root.mainloop()

لم استطع حذف القيم فقمت بتبديلها ليس الأ

و هذا ما توصلت اليه 

شكرا لكم 

  • 0
نشر

حاول استخدام المتغيرات StringVar المستقلة لتخزين القيم وتحديثها في جميع الأماكن المرتبطة بها.

import tkinter as tk
from tkinter import ttk

def update_dropdown_values():
    new_values = ["New Option 1", "New Option 2", "New Option 3"]
    selected_value.set("")  # إعادة تعيين القيمة المحددة
    dropdown['values'] = new_values

root = tk.Tk()

selected_value = tk.StringVar(root)
dropdown = ttk.Combobox(root, textvariable=selected_value, values=["Option 1", "Option 2", "Option 3"])
dropdown.pack()

update_button = tk.Button(root, text="تحديث القائمة", command=update_dropdown_values)
update_button.pack()

root.mainloop()

إنشاء متغير selected_value باستخدام StringVar لتخزين القيمة المحددة في القائمة المنسدلة، وعند تحديث قيمة القائمة، نقوم بإعادة تعيين القيمة المحددة باستخدام selected_value.set("") لضمان عدم وجود قيمة غير صحيحة محددة بعد تغيير القائمة.

وتستطيع  استخدام متغير selected_value في جميع القوائم المنسدلة المرتبطة به، وسيتم تحديث قيم القوائم المنسدلة تلقائيًا عند استدعاء الدالة update_dropdown_values التي تقوم بتحديث قيم القائمة.

  • 0
نشر

بالطبع، يمكنك تغيير قيم القائمة المنسدلة في تطبيق Tkinter باستخدام متغيرات Tkinter مثل StringVar. هناك عدة خطوات يمكنك اتباعها لتحقيق ذلك. هيا نلقي نظرة على الخطوات التالية:

استيراد مكتبة Tkinter: قم بإضافة استيراد لمكتبة Tkinter في بداية الكود الخاص بك:

from tkinter import *

إنشاء متغير StringVar: قم بإنشاء متغير StringVar باستخدام الدالة StringVar() وتعيينه للقيمة الافتراضية للقائمة المنسدلة:

dropdown_value = StringVar()
dropdown_value.set("Default Value")

إنشاء قائمة منسدلة: قم بإنشاء عنصر القائمة المنسدلة باستخدام الدالة OptionMenu وتمرير المتغير StringVar كوسيطة، وقم بتعيين القيم الممكنة للقائمة:

dropdown_menu = OptionMenu(root, dropdown_value, "Value 1", "Value 2", "Value 3")
dropdown_menu.pack()

حيث root هو النافذة الرئيسية لتطبيقك.

تغيير قيمة القائمة المنسدلة: يمكنك تغيير قيمة القائمة المنسدلة عند الحاجة بتحديث قيمة المتغير StringVar. يمكنك استخدام الدالة set() لتعيين قيمة جديدة للمتغير، وسيتم تحديث قائمة الاختيار تلقائيًا:

dropdown_value.set("New Value")

هذه هي الخطوات الأساسية لتغيير قيم القائمة المنسدلة باستخدام متغيرات Tkinter مثل StringVar. يمكنك تكرار هذه الخطوات لإنشاء قوائم منسدلة أخرى وتحديث قيمها بنفس الطريقة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...