0

How can i add scrollbar to my Frame in tkinter? I would like to add scrollbar in Comments_tab.
I was trying to play with Canvas, however, i am doing something wrong. Could i ask for your advice please?

class Main(tk.Tk):
def __init__(self):
    #
    tk.Tk.__init__(self)
               
    #make notebook fill display
    self.grid_rowconfigure(0, weight=1)
    self.grid_columnconfigure(0, weight=1)
    
    #Notebook
    nb = ttk.Notebook(self)
    nb.grid(row=0, column=0, sticky='nswe')
    
    #keep a reference to the pages
    self.p0 = Config_tab(self)
    self.p1 = Comments_tab(self)
    
    #Canvas
    canvas_comments=tk.Canvas(self.p1,bg='#FFFFFF',width=300,height=300,scrollregion=(0,0,500,500))
    vbar=tk.Scrollbar(self.p1,orient=tk.VERTICAL)
    vbar.grid(row=0, column=0, sticky="NSE")
    vbar.config(command=canvas_comments.yview)
    tk.Label(self.p1, text="asdddddd").grid(row=0,column=0)
    
    canvas_comments.config(width=300,height=300)
    canvas_comments.config(yscrollcommand=vbar.set)
    canvas_comments.grid(row=0, column=0, sticky="NSEW")
    #tabs
    nb.add(self.p0, text="Config")
    nb.add(self.p1, text="Comments")




class Comments_tab(tk.Frame):

def __init__(self, master, **kwargs):
    tk.Frame.__init__(self, master, **kwargs)
    
    
    
    tk.Label(self, text="HU3: ").grid(row=3, column=0)

if __name__ == "__main__":
root = Main()
root.geometry('800x600')
root.title("HAT")
root.mainloop()
zarize
  • 25
  • 4
  • 1
    You are doing things the wrong way around: the frame you want to scroll (`self.p1`) should be a child of `canvas_comments`. Have a look at https://stackoverflow.com/questions/3085696/adding-a-scrollbar-to-a-group-of-widgets-in-tkinter/3092341#3092341: `self.canvas` is your `canvas_comments` and `self.frame` is your `self.p1` – j_4321 Sep 01 '20 at 10:42
  • i think it helped me, at least it looks like! :) Thank you! – zarize Sep 01 '20 at 11:46

0 Answers0