Python Forum
[Tkinter] How to add multiple frames to main window
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] How to add multiple frames to main window
#11
Ok. I'm using Python 3.6 with PyCharm IDE on a MacBook.

I tried using the terminal to run the code & it still does nothing....
Reply
#12
Sorry, I am at a loss. Maybe someone else can help.

Personally, when things like this happen, I try to find out where the issue is by adding little things to the code here and there. For example, it the WinchApp class, try adding this line and see if it shows anything:

Label(self, text="Hello").grid(row=10, column=20)
Reply
#13
Nope. Nothing.

I can run other tkinter python code that works, but this GUI does not show up.... even after adding your label code to the WinchApp class.
Reply
#14
Ok. I got it working.... I used notebook & added the frames to a tab of the notebook:

class MainWindow(tk.Frame):
  
    def __init__(self, parent, *args, **kwargs):
        # create different tabs within the main window:
        nb = ttk.Notebook(root)
        
        tab1 = ttk.Frame(nb)

        TopLeft = WinchFrame(tab1, padx=10, pady=20, relief='ridge')
        TopLeft.pack()
        TopRight = WinchFrame(tab1, padx=10, pady=20)
        TopRight.pack()
        BotLeft = WinchFrame(tab1, padx=10, pady=20, relief='ridge')
        BotLeft.pack()
        BotRight = WinchFrame(tab1, padx=10, pady=20)
        BotRight.pack()



class WinchFrame(tk.Frame):

    def __init__(self, parent=None, **kw):
        Frame.__init__(self, parent, kw)

        #  CREATE WIDGETS:
        self.winch_lbl = Label(self, width=15)
        self.lbl_btn_up = Label(self, text="UP")
        self.btn_up = Button(self, text="OFF", width=12, fg='green', command=self.toggle_up)
        self.txt = Text(self, height=1, width=50, bg="light blue")
        self.lbl_btn_down = Label(self, text="DOWN")
        self.btn_down = Button(self, text="OFF", width=12, fg='green', command=self.toggle_down)

        #  LAYOUT:
        self.winch_lbl.grid(row=1, column=0, padx=5, pady=5)
        self.lbl_btn_up.grid(row=1, column=1, padx=5, pady=5)
        self.btn_up.grid(row=1, column=2, padx=5, pady=5)
        self.lbl_btn_down.grid(row=3, column=1, padx=5, pady=5)
        self.btn_down.grid(row=3, column=2, padx=5, pady=5)
        self.txt.grid(row=5, column=1, columnspan=2, padx=5, pady=5)

    def toggle_up(self):
        '''
        use
        t_btn.config('text')[-1]
        to get the present state of the toggle button
        '''
        if self.btn_up.config('text')[-1] == 'ON':
            self.btn_up.config(text='OFF', highlightbackground='gray')
            print('button turned off')
            self.btn_down['state'] = tk.NORMAL
        else:
            self.btn_up.config(text='ON', highlightbackground='red')
            print('button turned on')
            self.btn_down['state'] = tk.DISABLED


    def toggle_down(self):
        '''
        use
        t_btn.config('text')[-1]
        to get the present state of the toggle button
        '''
        if self.btn_down.config('text')[-1] == 'ON':
            self.btn_down.config(text='OFF', highlightbackground='gray')
            print('button turned off')
            self.btn_up['state'] = tk.NORMAL
        else:
            self.btn_down.config(text='ON', highlightbackground='red')
            print('button turned on')
            self.btn_up['state'] = tk.DISABLED
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Interaction between Matplotlib window, Python prompt and TKinter window NorbertMoussy 3 343 Mar-17-2024, 09:37 AM
Last Post: deanhystad
  Tkinter multiple windows in the same window tomro91 1 787 Oct-30-2023, 02:59 PM
Last Post: Larz60+
Exclamation [Tkinter] Error when closing the main window with destroy TomasSanchexx 1 727 Aug-06-2023, 01:54 AM
Last Post: deanhystad
  [PyQt] Can't get MDIarea to resize automatically with Main Window JayCee 4 3,396 Aug-02-2021, 08:47 PM
Last Post: JayCee
  [PyQt] How to clip layout to sides and bottom of main window? Valmont 9 4,838 Mar-24-2021, 10:00 PM
Last Post: deanhystad
  "tkinter.TclError: NULL main window" Rama02 1 5,784 Feb-04-2021, 06:45 PM
Last Post: deanhystad
  [Tkinter] Hi, Keep postition of main window after iconify() delphinis 3 3,056 Jul-12-2020, 06:59 AM
Last Post: DT2000
  [Tkinter] Auto re-fit frames sizes in main window Gilush 2 2,608 Jun-06-2020, 03:14 AM
Last Post: Gilush
  [Tkinter] Change label for multiple frames Dandy_Don 3 2,927 Apr-30-2020, 02:22 PM
Last Post: Dandy_Don
  [Tkinter] Mouse click event not working on multiple tkinter window evrydaywannabe 2 3,711 Dec-16-2019, 04:47 AM
Last Post: woooee

Forum Jump:

User Panel Messages

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