Añadir la intvar de tkinter a un entero

Tengo algunos problemas para agregar un valor tomado de un cuadro de Entrada y agregarlo a un número existente. En este caso, quiero que el valor del cuadro de “velocidad de cambio” se agregue a la velocidad actual de los robots. Cuando se ejecuta, mi código produce un error:

TypeError: tipo (s) de operando no compatibles para + =: ‘int’ e ‘IntVar’.

A continuación se muestra el código que produce el cuadro de entrada:

change_speed_entry = ttk.Entry(main_frame, width=5) # Entry box for linear speed change_speed_entry.grid() data = tkinter.IntVar() change_speed_entry['textvariable'] = data 

Y a continuación es donde trato de manipular el resultado. Este es un método dentro de una clase. Todos los otros métodos de la clase funcionan correctamente:

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

Primero debe invocar el método IntVar de IntVar :

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

que devuelve el valor de la variable como un entero.

Como no tengo su código completo, escribí un pequeño script para demostrar:

 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("", click) root.mainloop() 

Cuando ejecuta el script, aparece una pequeña ventana que tiene un buzón de entrada. Cuando escribe un número en ese cuadro de entrada y luego hace clic en Return , la secuencia de comandos obtiene el número almacenado en los data (que será el número que escribió), le agrega 1 y luego lo imprime en la pantalla.

No mostró el código que define .speed o delta_speed , así que supongo que aquí. Tratar:

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

Si delta_speed es un IntVar , .get() recuperará su valor como un int de Python.