JSh*_*ell 1 python user-interface tk-toolkit tkinter
我在添加从Entry框中获取的值并将其添加到现有数字时遇到了一些麻烦.在这种情况下,我希望将"更改速度"框的值添加到机器人当前速度.运行时,我的代码会产生错误:
TypeError:+ =:'int'和'IntVar'的不支持的操作数类型.
下面是生成输入框的代码:
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
Run Code Online (Sandbox Code Playgroud)
接下来是我试图操纵结果的地方.这是一个类中的方法.该类的所有其他方法都能正常工作:
def changeSpeed(self, delta_speed):
self.speed += delta_speed
Run Code Online (Sandbox Code Playgroud)
您需要先调用以下.get方法IntVar:
def changeSpeed(self, delta_speed):
self.speed += delta_speed.get()
Run Code Online (Sandbox Code Playgroud)
它将变量的值作为整数返回.
由于我没有完整的代码,我写了一个小脚本来演示:
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()
Run Code Online (Sandbox Code Playgroud)
运行脚本时,会出现一个带有输入框的小窗口.当您在该条目框中键入数字然后单击时Return,脚本将获取存储的数字data(这将是您键入的数字),向其中添加1,然后将其打印在屏幕上.
| 归档时间: |
|
| 查看次数: |
23631 次 |
| 最近记录: |