Python Forum
[Tkinter] Command button, then more command buttons
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] Command button, then more command buttons
#5
Using Classes to make frames that contain buttons, destroying a frame will also destroy any child widgets of the frame.
import tkinter as tk


class Main:
    def __init__(self, root):
        self.root = root
        self.root.geometry("800x800")
        self.create_start_frame()

    def create_start_frame(self):
        self.start_frame = StartFrame(self.root)
        self.start_frame.btn_start.bind(
            '<Button-1>', self.on_start_frame_btn_start)
        self.start_frame.pack()

    def on_start_frame_btn_start(self, event):
        self.start_frame.destroy()
        self.second_menu_frame = SecondMenuFrame(root)
        self.second_menu_frame.btn_option1.bind(
            '<Button-1>', self.on_second_menu_frame_btn_option1)
        self.second_menu_frame.pack()

    def on_second_menu_frame_btn_option1(self, event):
        self.second_menu_frame.destroy()
        self.final_frame = FinalFrame(root)
        self.final_frame.pack()


class StartFrame(tk.Frame):
    def __init__(self, parent):
        super().__init__(parent)
        tk.Label(self, text='StartFrame').pack()
        self.btn_start = tk.Button(
            self, text="Press here to start", bg="red", fg="black", font="Helvitica 30")
        self.btn_start.pack()


class SecondMenuFrame(tk.Frame):
    def __init__(self, parent):
        super().__init__(parent)
        tk.Label(self, text='SecondMenuFrame').pack()
        self.btn_option1 = tk.Button(self, text="Option1", bg="white",
                                     fg="firebrick", relief="groove", font="Helvitica 30")
        self.btn_option1.pack()


class FinalFrame(tk.Frame):
    def __init__(self, parent):
        super().__init__(parent)
        tk.Label(self, text='FinalFrame').pack()
        self.btn_final1 = tk.Button(self, text="finalsel1", bg="white",
                                    fg="firebrick", relief="groove", font="Helvitica 30", )
        self.btn_final1.pack()


if __name__ == "__main__":
    root = tk.Tk()

    main = Main(root)
    root.mainloop()
Reply


Messages In This Thread
RE: Command button, then more command buttons - by Yoriz - Aug-08-2020, 11:28 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  I'm trying to create a GUI in Python which would accept a bash command max22 1 700 Nov-13-2023, 04:40 AM
Last Post: deanhystad
  [PyGUI] Invalid command error with Entry object eliqm 8 2,217 May-18-2023, 10:14 PM
Last Post: eliqm
  tkinter.TclError: can't invoke "canvas" command cybertooth 8 6,040 Feb-23-2023, 06:58 PM
Last Post: deanhystad
  [PyQt] command require close window Krissstian 14 2,989 Nov-19-2022, 04:18 PM
Last Post: Krissstian
  [Tkinter] Scrollable buttons with an add/delete button Clich3 5 3,464 Jun-16-2022, 07:19 PM
Last Post: rob101
  [Tkinter] Button 'command' Argument Confusion gw1500se 11 5,906 Nov-11-2021, 08:45 PM
Last Post: menator01
  [Tkinter] Extracting Data from a Command Subroutine gw1500se 0 1,112 Nov-11-2021, 08:02 PM
Last Post: gw1500se
  [Tkinter] _tkinter.TclError: can't invoke "destroy" command: application has been destroyed knoxvilles_joker 6 15,657 Apr-25-2021, 08:41 PM
Last Post: knoxvilles_joker
  Continue command in python tkinter? MLGpotato 7 8,510 Mar-27-2021, 04:59 AM
Last Post: deanhystad
  [PyGUI] My GUI crashes after command MLGpotato 1 1,908 Feb-21-2021, 03:17 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

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