我想获取用户的输入,将其存储为变量并打印该变量(用于测试),但是当整个程序运行时,不会打印任何结果。
from Tkinter import *
import os.path
import PIL.Image, PIL.ImageTk
import Tkinter as tk
def on_change(entry):
inp = entry.widget.get()
print inp
root = tk.Tk()
#Makes a canvas for objects
canvas = Canvas(root, height=100, width=400)
#Displays the canvas
canvas.grid(row=3, column=2)
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=1)
label = Label(root, text="Enter an element or the atomic number from 1 to 118.").grid(row=0, column=2)
entry = tk.Entry(root)
entry.pack()
entry.bind("<Return>", on_change)
entry.grid(row=2, column=2)
entry.focus()
def entry_delete(evt):
entry.delete(0, 'end')
entry.bind("<Return>", entry_delete)
root.mainloop()
答案 0 :(得分:0)
您正在<Return>
上创建绑定,然后用不同的绑定覆盖该绑定。
如果要绑定到多个函数,则需要将add
参数设置为True
:
entry.bind("<Return>", entry_delete, add=True)
根据我的经验,总是有一个单一的绑定是最好的。如果您需要绑定来执行多项操作,请创建一个函数来调用这些内容:
def on_return(event):
on_change(event)
entry_delete(event)
entry.bind("<Return>", on_return)