将多个条目小部件键绑定到一个更新唯一变量的函数

时间:2021-07-06 20:42:28

标签: python tkinter tkinter-entry

我有多个 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_valuedef get_val1_on_enter(entered_value): 输入是键绑定工作所必需的?这就是阻止我编写带有参数的定义来指定要更新的变量的原因,例如 def get_value(variable_to_update):

0 个答案:

没有答案
相关问题