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

السؤال

Recommended Posts

  • 0
نشر

ما تقصدينه هو حساب عدد مرات الضغط في tkinter والطريقة المباشرة هي استخدام عداد، وتستطيعي إنشاء عداد جديد باستخدام وظيفة IntVar().

from tkinter import *

root = Tk()

# إنشاء عداد
counter = IntVar()
counter.set(0)

# تحديث العداد عند الضغط على الزر
def count():
    counter.set(counter.get() + 1)
    label.config(text=f"عدد مرات الضغط: {counter.get()}")

# إنشاء زر
button = Button(root, text="ضغط", command=count)
button.pack()

# إنشاء علامة لعرض عدد مرات الضغط
label = Label(root, text="عدد مرات الضغط: 0")
label.pack()

root.mainloop()

حيث يتم إنشاء عداد جديد يسمى counter، ثم تعيين العداد على 0 في البداية، وإنشاء زر جديد يسمى button، بعد ذلك عند الضغط على الزر، يتم تحديث العداد بمقدار 1 وعرض عدد مرات الضغط الحالي على علامة تسمى label.

  • 0
نشر

يمكنك حساب عدد مرات الضغط على زر ما بنفس طريقة التعليق السابق عبر انشاء عداد بقيمة 0 وزيادة قيمة العداد بمقدار 1 عند الضغط على الزر، ولكن عبر تعريف متحول count كمتحول عام باستخدام global لكي نستطيع الوصول إليه من أي مكان في الكود

import tkinter as tk

def counter():
    global count
    count += 1
    label.config(text="عدد مرات الضغط الحالية: " + str(count))

count = 0

root = tk.Tk()

button = tk.Button(root, text="اضغط هنا", command=counter)
button.pack()

label = tk.Label(root, text="عدد مرات الضغط الحالية: 0")
label.pack()

root.mainloop()

فقط الاختلاف عن الكود السابق هو في تعريف التابع counter الذي تتم فيه عملية تحديث count حيث تم تعريفه ك global وبالتالي في اول ضغطه سوف تصبح قيمة count=1 وبعد ثاني ضغطه يصبح count=1+1=2 مع عرض عدد مرات الضغط الحالية في كل مرة لو لم يتم وضع global سوف يعطي ذلك خطأ لأنه لن نستطيع الوصول إلى المتحول count وتحديثه باعتباره متحول محلي إي لا يمكن الوصول إلى من اي مكان في الكود.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...