我有多个 tkinter Entry 小部件,如果用户点击 Enter 或点击提交按钮,我想记录该值。我目前将 <Return>
绑定到每个 Entry 小部件独有的定义,如下所示:
import tkinter as tk
from tkinter import ttk
# Variable I want to update
var1 = None
var2 = None
root = tk.Tk()
root.geometry('200x100')
def get_val1_on_enter(entered_value):
global var1
entered_value = entry1.get()
var1 = entered_value
print('Value1: {}'.format(var1))
def get_val2_on_enter(entered_value):
global var2
entered_value = entry2.get()
var2 = entered_value
print('Value1: {}'.format(var2))
def submit():
global var1, var2
value1 = entry1.get()
var1 = value1
value2 = entry2.get()
var2 = value2
print('Value 1: {}'.format(var1))
print('Value 2: {}'.format(var2))
# Entry Fields
entry1 = ttk.Entry(root)
entry1.pack()
entry1.bind('<Return>', get_val1_on_enter)
entry2 = ttk.Entry(root)
entry2.pack()
entry2.bind('<Return>', get_val2_on_enter)
# Submit Button
submit_button = ttk.Button(root, text='Submit', command=submit)
submit_button.pack()
root.mainloop()
我想要一个定义并多次使用它,而不是为每个输入字段使用单独的定义。有没有办法编写和调用可用于两个输入字段的定义?
我也很好奇为什么 entered_value
的 def get_val1_on_enter(entered_value):
输入是键绑定工作所必需的?这就是阻止我编写带有参数的定义来指定要更新的变量的原因,例如 def get_value(variable_to_update):
。