提问人:KevP 提问时间:8/6/2023 最后编辑:Bryan OakleyKevP 更新时间:8/9/2023 访问量:39
如何从同名但不同框架的条目小部件中获取数据
How to getdata from entry widgets with same name but in different frames
问:
我创建了 sevearal 框架,并在每个框架中添加了标签和条目小部件等,但我在每个框架中都以相同的方式命名了这些标签和条目小部件。 那么,如何从“frame.entry”中唯一地获取条目数据
即下面是所有工作正常的唯一名称:
import tkinter as tk
window = tk.Tk()
def get_b1():
x = e1.get()
if x == "":
l1.configure(text = "Enter something")
else:
l1.configure(text = x)
def get_b2():
x = e2.get()
if x == "":
l2.configure(text = "Enter something")
else:
l2.configure(text = x)
f1 = tk.Frame(master=window, relief=tk.RAISED, borderwidth=1)
f2 = tk.Frame(master=window, relief=tk.RAISED, borderwidth=1)
b1 = tk.Button(f1, text = "Press me", command = get_b1)
b2 = tk.Button(f2, text = "Press me", command = get_b2)
e1 = tk.Entry(f1)
e2 = tk.Entry(f2)
l1 = tk.Label(f1, text="I'm in frame 1")
l2 = tk.Label(f2, text="I'm in frame 2")
f1.grid(row=0, column=0)
f2.grid(row=1, column=0)
b1.grid( row=0, column=0)
e1.grid( row=0, column=1)
l1.grid( row=0, column=2)
b2.grid( row=0, column=0)
e2.grid( row=0, column=1)
l2.grid( row=0, column=2)
但是如果我将 f2 小部件重命名为 b1、e1、l1 等, 这惨遭失败: 这是否意味着小部件都必须具有唯一的名称,我不认为是这样?
import tkinter as tk
window = tk.Tk()
def get_f1_b1():
x = e1.get()
if x == "":
l1.configure(text = "Enter something")
else:
l1.configure(text = x)
def get_f2_b1():
x = e1.get()
if x == "":
l1.configure(text = "Enter something")
else:
l1.configure(text = x)
f1 = tk.Frame(master=window, relief=tk.RAISED, borderwidth=1)
f2 = tk.Frame(master=window, relief=tk.RAISED, borderwidth=1)
b1 = tk.Button(f1, text = "F1, Press me", command = get_f1_b1)
b1 = tk.Button(f2, text = "F2, Press me", command = get_f2_b1)
e1 = tk.Entry(f1)
e1 = tk.Entry(f2)
l1 = tk.Label(f1, text="I'm in frame 1")
l1 = tk.Label(f2, text="I'm in frame 2")
f1.grid(row=0, column=0)
f2.grid(row=1, column=1)
b1.grid(row=0, column=0)
e1.grid(row=0, column=1)
l1.grid(row=0, column=2)
b1.grid(row=1, column=0)
e1.grid(row=1, column=1)
l1.grid(row=1, column=2)
答: 暂无答案
上一个:计算同一单元格中的名字
下一个:如何将列和行描述为函数中的变量?
评论
e1 = tk.Entry(f1)
e1 = tk.Entry(f2)