我正在研究这个Incrementor Decrementor程序..其中首先我输入一个数字,当我按下+输入的数字加1并且当我按下时减少 - ...问题是值增加或者只减少一次。
from tkinter import *
#******* Functions code ********
def add(event):
a=float(enter.get())
b=a+1
labelresult=Label(root,text="Result : %2f"%b).grid(row=3,column=1)
return
def sub(event):
a=float(enter.get())
b=a-1
labelresult=Label(root,text="Result : %2f"%b).grid(row=3,column=1)
return
#******* GUI code***********
root=Tk()
root.geometry('250x250')
root.title('Incrementor or Decrementor')
enter=IntVar()
label=Label(root,text="Skz.inc",bg='skyblue',fg='red').grid(row=0,column=1)
label=Label(root,text="enter a number").grid(row=1)
entry_1=Entry(root,textvariable=enter).grid(row=1,column=1)
button1=Button(root,text='+')
button1.grid(row=2,column=0)
button1.bind('<Button-1>',add)
button2=Button(root,text='-')
button2.grid(row=2,column=3)
button2.bind('<Button-1>',sub)
root.mainloop()
因此,每当我按下+或 - 按钮时,我输入的值应该递增或递减。 示例 - 当我输入9并按+时,结果应为10(在我的程序中有效)。再次按下+按钮,结果应该是11,这在我的代码中不是这种情况。 帮帮我们......修改并发回代码。
由于
答案 0 :(得分:2)
每次按 + 或 - 时,该函数会读取条目中的值。您必须为每个add或sub更新条目中的值。
def add(event):
a=float(enter.get())
b=a+1
labelresult.config(text="Result : %2f"%b) # Update labelresult instead of
# creating a new label every time
enter.set(b) # Set entry to the new value
return
您必须在GUI代码中创建labelresult
:
labelresult = Label(root)
labelresult.grid(row=3,column=1)