Add tkinter's intvar to an integer

前端 未结 2 1255
-上瘾入骨i
-上瘾入骨i 2020-12-11 21:45

I\'m having some trouble adding a value taken from an Entry box and adding it to an existing number. In this case, I want the value of the \"change speed\" box to be added t

相关标签:
2条回答
  • 2020-12-11 22:14

    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.

    0 讨论(0)
  • 2020-12-11 22:28

    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.

    0 讨论(0)
提交回复
热议问题