Python Tkinter Entry组件调用get方法输出异常问题求助
问题原因
你在为Label的text参数传值时写的是myInput.get,没有添加括号。get是Entry组件的内置调用方法,不加括号直接写方法名时,传递的是这个方法本身的内存地址,而非调用方法后返回的输入框实际内容,你看到的带get的数字串就是该方法对象的内存地址标识,每次点击会新建Label对象,内存地址偏移所以数值会出现递增变化。
正确实现方案
- 调用Entry组件的get方法时必须添加括号
(),写为myInput.get()才能获取到输入框内的真实内容 - 不建议每次触发点击事件都新建Label组件,可预先创建好Label,后续直接修改其text属性即可,避免重复生成组件占用多余资源
修正后的完整代码如下:
from tkinter import * root = Tk() myInput = Entry(root) myInput.grid(row=4, column=0) # 预先创建Label组件,避免重复生成 label2 = Label(root, text="") label2.grid(row=6, column=0) def buttonClick2(): # 加括号调用get方法,获取输入内容后更新Label的文本 label2.config(text=myInput.get()) otherButton = Button(root, text="Enter", padx=20 ,pady =10, command= buttonClick2) otherButton.grid(row=5, column=0) root.mainloop()
内容的提问来源于stack exchange,提问作者batchcoding____s
相关产品推荐
相关产品推荐

