Ajouter tkinter est intvar à un entier
J'ai un peu de mal à l'ajout d'une valeur à partir d'une zone d'Entrée et de l'ajouter à un numéro existant. Dans ce cas, je veux que la valeur de "changer de vitesse" boîte à ajouter pour les robots de vitesse actuelle. Lorsque vous exécutez, mon code génère une erreur:
TypeError: unsupported operand type(s)+=: 'int' et 'IntVar'.
Ci-dessous est le code qui génère l'entrée de la boîte:
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
Et à côté est, où j'essaie de manipuler le résultat. C'est une méthode dans une classe. Toutes les autres méthodes de la classe fonctionne correctement:
def changeSpeed(self, delta_speed):
self.speed += delta_speed
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord appeler le
.get
méthode deIntVar
:qui retourne la valeur de la variable comme un entier.
Depuis je n'ai pas votre code complet, j'ai écrit un petit script pour le démontrer:
Lorsque vous exécutez le script, une petite fenêtre apparaît qui a un entrybox. Lorsque vous tapez un numéro de entrybox puis cliquez sur
Return
, le script récupère le nombre stocké dansdata
(ce qui sera le numéro que vous avez tapé dans l'), ajoute 1, puis l'imprime sur l'écran.Vous n'avez pas d'afficher le code définissant
.speed
oudelta_speed
, donc je suppose ici. Essayez:Si
delta_speed
est unIntVar
,.get()
permettra de récupérer sa valeur en tant que Python int.