Apr-30-2020, 02:01 AM
I'm using Python 3 & Pycharm IDE.
I have a GUI that I created using tk. It is a notebook with multiple tabs.
Here is part of the Winch frame class:
I added a label to the class definition (self.winch_lbl), but I can't figure out how to change the text of the label based on the instantiation of it....
I have a GUI that I created using tk. It is a notebook with multiple tabs.
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) nb.add(tab1, text='Winch Control') tab2 = ttk.Frame(nb) nb.add(tab2, text='Temp Converter')On one of the tabs, I am adding multiple frames of the same class to a tab in the main window.
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()I would like to add a title/label to each of the frames in tab1, to differentiate between them. For example, "Top Left Winch", "Bottom Left Winch", etc.
Here is part of the Winch frame class:
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)
I added a label to the class definition (self.winch_lbl), but I can't figure out how to change the text of the label based on the instantiation of it....
TopRight.config['text'] = "Top Right Winch"Is is possible to add labels to a frame?