Python Forum
.get() from generated Entry widgets in tkinter
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
.get() from generated Entry widgets in tkinter
#4
Yes using classes I find is the best way for working with GUI's
In the following modified version of your code, I have stored the entry's in dictionaries and shown access them in the save button event.
import tkinter as tk
from tkinter import ttk

### Create tkinter window ###


class App(tk.Tk):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.title("Bookkeeping")
        self.geometry("800x600")

        ### Add a Notebook to window ###
        self.home_screen = ttk.Notebook(self)
        self.home_screen.pack(fill="both", expand=1, pady=15)
        self.create_customer_tab()
        self.create_vendor_tab()

    ### Create Customers tab ###
    def create_customer_tab(self):
        self.customer_tab = TabFrame(self.home_screen)
        entry_boxes = ["Customer ID", "Name", "Address 1", "Address 2",
                       "Address 3", "Address 4", "Email Address", "Phone 1",
                       "Phone 2"]
        for detail_name in entry_boxes:
            self.customer_tab.create_entrys(detail_name)

        self.customer_tab.create_save_button()
        self.customer_tab.save_button.bind('<Button-1>', self.on_save_button)

        self.home_screen.add(self.customer_tab, text="Customers")

    ### Create Vendors tab ###
    def create_vendor_tab(self):
        self.vendor_tab = TabFrame(self.home_screen)

        for detail_name in ["Name", "Address 1", "Address 2", "Address 3",
                            "Address 4", "Email Address", "Phone 1", "Phone 2"]:
            self.vendor_tab.create_entrys(detail_name)

        self.home_screen.add(self.vendor_tab, text="Vendors")

    def on_save_button(self, event):
        print('save clicked')
        entry_boxes = ["Customer ID", "Name", "Address 1", "Address 2",
                       "Address 3", "Address 4", "Email Address", "Phone 1",
                       "Phone 2"]
        for detail_name in entry_boxes:
            entry_value = self.customer_tab.entrys[detail_name].get()
            print(f'Entry {detail_name} = {entry_value}')


### Class to add tabs to Notebook with a method to add entry boxes and a save button ###
class TabFrame(tk.Frame):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.pack(fill="both", expand=1)
        self.entrys = {}

    def create_entrys(self, detail_name):
        entry_box = tk.Entry(self)
        entry_box.grid(column=1)
        entry_box.insert(0, detail_name)
        self.entrys[detail_name] = entry_box

    def create_save_button(self):
        self.save_button = tk.Button(self, text="Save")
        self.save_button.grid(column=1)


# Main
app = App()
app.mainloop()
Reply


Messages In This Thread
RE: .get() from generated Entry widgets in tkinter - by Yoriz - May-03-2021, 12:40 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  make widgets disappear from tkinter jacksfrustration 12 1,304 Feb-06-2024, 03:58 PM
Last Post: deanhystad
  [Tkinter] Making entry global in tkinter with multiprocessing luckyingermany 2 2,365 Jan-21-2022, 03:46 PM
Last Post: deanhystad
  Tkinter Exit Code based on Entry Widget Nu2Python 6 3,075 Oct-21-2021, 03:01 PM
Last Post: Nu2Python
  [Tkinter] Update variable using tkinter entry methon drSlump 6 5,294 Oct-15-2021, 08:01 AM
Last Post: drSlump
  Tkinter | entry output. Sap2ch 1 2,039 Sep-25-2021, 12:38 AM
Last Post: Yoriz
  Entry Validation in tkinter shahulvk 4 16,589 Oct-28-2020, 10:12 PM
Last Post: joe_momma
  [Tkinter] Getting Input from Tkinter Entry juliabrushett 6 21,531 May-30-2020, 03:29 PM
Last Post: Larz60+
  Converting Entry field value to integer in tkinter scratchmyhead 2 5,022 May-11-2020, 03:41 PM
Last Post: scratchmyhead
  [Tkinter] Tkinter adding entry values scratchmyhead 1 2,238 May-04-2020, 05:21 AM
Last Post: Yoriz
  [Tkinter] Connect Toplevel Radiobuttons to root Label/Entry widgets iconit 2 2,505 Apr-28-2020, 06:50 AM
Last Post: iconit

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020