Add tkinter's intvar to an integer

房东的猫 提交于 2019-11-28 14:20:32

You need to first invoke the .get method of IntVar:

def changeSpeed(self, delta_speed):
    self.speed += delta_speed.get()

which returns the variable's value as an integer.

Since I don't have your full code, I wrote a small script to demonstrate:

from Tkinter import Entry, IntVar, Tk

root = Tk()

data = IntVar()

entry = Entry(textvariable=data)
entry.grid()

def click(event):
    # Get the number, add 1 to it, and then print it
    print data.get() + 1

# Bind the entrybox to the Return key
entry.bind("<Return>", click)

root.mainloop()

When you run the script, a small window appears that has an entrybox. When you type a number in that entrybox and then click Return, the script gets the number stored in data (which will be the number you typed in), adds 1 to it, and then prints it on the screen.

You didn't show the code defining .speed or delta_speed, so I'm guessing here. Try:

    self.speed += delta_speed.get()
                             ^^^^^^

If delta_speed is an IntVar, .get() will retrieve its value as a Python int.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!