【问题标题】:How can I bind the <"Return"> key and button widget to the same function on Tkinter?如何将 <"Return"> 键和按钮小部件绑定到 Tkinter 上的相同功能?
【发布时间】:2020-12-14 03:50:32
【问题描述】:

我目前正在尝试制作一个允许用户使用按钮或 Enter 键来运行我的程序的 GUI。我试图弄清楚是否有一种方法可以使用按钮或按 Enter 可以执行相同的功能,而不必分别为这两个操作重写相同的功能。 , Enter, 键当前与我创建的输入字段绑定。键绑定和按钮都设置为执行相同的功能,但没有运气。这可能吗?是否有更好的方法来实现这一目标?下面是我到目前为止的示例代码。请让我知道在这种情况下最好的选择是什么,我将非常感激。谢谢。

def but_test(entry):
print(entry)

H = 700
W = 925

root = tk.Tk()

canvas = tk.Canvas(root, bg="#8080ff", height = H, width = W)
canvas.pack(fill = "both", expand = True)

frame = tk.Frame(root, bg='brown', bd=10)
frame.place(relx= 0.08,rely=0.15,relwidth = 0.3, relheight=0.08)

entry = tk.Entry(frame, bg='white',relief = 'sunken')
entry.place(relwidth=0.6, relheight=1)


button = tk.Button(frame, text = "Button", bg='red', command=lambda:but_test(entry.get()))
button.place(relx=0.7,relwidth=0.3, relheight=1)

entry.bind("<Return>", but_test)
     

frame2 = tk.Frame(root, bg='yellow',bd=10)
frame2.place(relx= 0.1, rely = 0.4, relwidth=0.25, relheight=0.5)

label = tk.Label(frame2, bg='white')
label.place(relwidth=1,relheight=1)

root.mainloop()

【问题讨论】:

    标签: python tkinter tk


    【解决方案1】:

    您也可以在bind() 中使用lambda

    entry.bind("<Return>", lambda e: but_test(entry.get()))
    

    【讨论】:

    • 非常感谢!我之前尝试过添加这个,但我可能犯了一个错误。
    猜你喜欢
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多