I've created sevearal frames and added labels & entry widgets etc to each frame, but I've named these label & entry widgets the same in each of the frames. So how do I uniquely get the entry data from a "frame.entry"
i.e. below is all unique names which works OK:
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)
but if I rename the f2 widgets as b1, e1, l1 etc, This fails miserably: Does this mean widgets all have to have unique names, Ididn't think that was the case?
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)