البرمجة

تنفيذ وظائف مع باراميترات في Tkinter

لديك تحدي في تحديد كيفية تمرير معامل لوظيفة معينة عند الضغط على زر في Tkinter. في الواقع، يمكنك تحقيق ذلك باستخدام وظيفة وسيطة (wrapper function) التي تُعيد وظيفة أخرى تحتوي على المعامل المطلوب. هناك عدة طرق للقيام بذلك، وإليك كيفية تحقيقها:

python
from tkinter import * root = Tk() def function(parameter): print(parameter) def wrapper(): function('Test') button = Button(root, text="Button", command=wrapper) button.pack() root.mainloop()

في هذا المثال، يتم إنشاء وظيفة wrapper التي تقوم بإعادة استدعاء وظيفة function وتمرير المعامل المطلوب عند الضغط على الزر. ومن ثم، يتم تعيين command=wrapper للزر مما يعني أن الوظيفة wrapper ستُستدعى عند الضغط على الزر.

المزيد من المعلومات

بالطبع! في Tkinter، يمكنك استخدام مكتبة functools لتحقيق نفس الغرض بشكل أنيق باستخدام functools.partial. إليك كيف يمكنك فعل ذلك:

python
from tkinter import * from functools import partial root = Tk() def function(parameter): print(parameter) button = Button(root, text="Button", command=partial(function, 'Test')) button.pack() root.mainloop()

هنا، تستخدم functools.partial لإنشاء وظيفة جديدة تعمل كوسيط بين الوظيفة function والمعامل 'Test'، ثم تمرير هذه الوظيفة كوسيط إلى command للزر. عند الضغط على الزر، يتم استدعاء الوظيفة الجديدة وتمرير المعامل 'Test' إلى الوظيفة function.

زر الذهاب إلى الأعلى