私の環境はPython 64ビット3.4を使用しているWindows 7です。ツリービューウィジェットにスクロールバーを接続しようとしています。いくつかのバージョンを試しましたが、機能しません。これまでに試した:
# treeview example
from tkinter import ttk
from tkinter import *
# Create instance
win = Tk()
# Add a title
win.title("Treeview Test")
# Add a treeview
tree = ttk.Treeview(win,selectmode='browse')
vsb = ttk.Scrollbar(orient="vertical",command=tree.yview)
tree.configure(yscrollcommand=vsb.set)
tree.place(x = 30, y = 95)
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"))
# Set Window Form Size and disable resizing
win.minsize(width=1200,height=600)
win.resizable(width=0,height=0)
# Event Loop
win.mainloop()
quit()
ウィンドウのスクロールバーをplace()
する必要があります。
_from tkinter import ttk
import tkinter as tk
win = 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()
_
ただし、place()
はx
およびy
を手動で計算する必要があります。 pack()
を使用する方が簡単です
_from tkinter import ttk
import tkinter as tk
win = 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()
_
いつでもTreeview
とScrollbar
をFrame
に入れ、このフレームをplace()
、pack()
またはgrid()
より良い場所に。
ウィジェットを作成したら、ウィジェットをTkウィンドウに配置またはレイアウトする必要があります。 tkinterで利用可能なレイアウトマネージャーは、グリッド、パック、配置です。それらをチェックアウトして、ウィジェットに追加してください。
import tkinter as tk
from tkinter.ttk import Treeview, Scrollbar
top = tk.Tk()
top.geometry('1400x800')
top.configure(background="#f7f7f7")
# treeview initialization
treeview = Treeview(top)
# scrollbars
vsb = 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)
これはあなたを助けることができるかもしれません。