Python Treeview scrollbar
You have to place()
your scrollbar in window.
from tkinter import ttkimport tkinter as tkwin = tk.Tk()win.minsize(width=300, height=400)win.resizable(width=0, height=0)tree = ttk.Treeview(win, selectmode='browse')tree.place(x=30, y=95)vsb = ttk.Scrollbar(win, orient="vertical", command=tree.yview)vsb.place(x=30+200+2, y=95, height=200+20)tree.configure(yscrollcommand=vsb.set)tree["columns"] = ("1", "2")tree['show'] = 'headings'tree.column("1", width=100, anchor='c')tree.column("2", width=100, anchor='c')tree.heading("1", text="Account")tree.heading("2", text="Type")tree.insert("",'end',text="L1",values=("Big1","Best"))tree.insert("",'end',text="L2",values=("Big2","Best"))tree.insert("",'end',text="L3",values=("Big3","Best"))tree.insert("",'end',text="L4",values=("Big4","Best"))tree.insert("",'end',text="L5",values=("Big5","Best"))tree.insert("",'end',text="L6",values=("Big6","Best"))tree.insert("",'end',text="L7",values=("Big7","Best"))tree.insert("",'end',text="L8",values=("Big8","Best"))tree.insert("",'end',text="L9",values=("Big9","Best"))tree.insert("",'end',text="L10",values=("Big10","Best"))tree.insert("",'end',text="L11",values=("Big11","Best"))tree.insert("",'end',text="L12",values=("Big12","Best"))win.mainloop()
But place()
needs manual calculations of x
and y
. It is easier to use pack()
from tkinter import ttkimport tkinter as tkwin = tk.Tk()win.resizable(width=0, height=0)tree = ttk.Treeview(win, selectmode='browse')tree.pack(side='left')vsb = ttk.Scrollbar(win, orient="vertical", command=tree.yview)vsb.pack(side='right', fill='y')tree.configure(yscrollcommand=vsb.set)tree["columns"] = ("1", "2")tree['show'] = 'headings'tree.column("1", width=100, anchor='c')tree.column("2", width=100, anchor='c')tree.heading("1", text="Account")tree.heading("2", text="Type")tree.insert("",'end',text="L1",values=("Big1","Best"))tree.insert("",'end',text="L2",values=("Big2","Best"))tree.insert("",'end',text="L3",values=("Big3","Best"))tree.insert("",'end',text="L4",values=("Big4","Best"))tree.insert("",'end',text="L5",values=("Big5","Best"))tree.insert("",'end',text="L6",values=("Big6","Best"))tree.insert("",'end',text="L7",values=("Big7","Best"))tree.insert("",'end',text="L8",values=("Big8","Best"))tree.insert("",'end',text="L9",values=("Big9","Best"))tree.insert("",'end',text="L10",values=("Big10","Best"))tree.insert("",'end',text="L11",values=("Big11","Best"))tree.insert("",'end',text="L12",values=("Big12","Best"))win.mainloop()
You can always put Treeview
and Scrollbar
in Frame
and then move this frame with place()
, pack()
or grid()
in better place.
import tkinter as tkfrom tkinter.ttk import Treeview, Scrollbartop = tk.Tk()top.geometry('1400x800')top.configure(background="#f7f7f7")# treeview initializationtreeview = Treeview(top)# scrollbarsvsb = Scrollbar(top, orient="vertical", command=treeview.yview)vsb.place(relx=0.978, rely=0.175, relheight=0.713, relwidth=0.020)hsb = Scrollbar(top, orient="horizontal", command=treeview.xview)hsb.place(relx=0.014, rely=0.875, relheight=0.020, relwidth=0.965)treeview.configure(yscrollcommand=vsb.set, xscrollcommand=hsb.set)
May be this can help you.