2017-01-26 2 views
2

제 환경은 파이썬 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() 
+0

"작동하지 못합니다"는 의미는 무엇입니까? 그것은 무엇을합니까, 그리고 당신이 기대하는 것과 어떻게 다른가요? –

+0

어디서 스크롤바를 놓았습니까? 나는 그것을 보지 않는다. – furas

답변

0

위젯을 만든 후에는 위젯을 Tk 창에 배치하거나 배치해야합니다. tkinter에서 사용할 수있는 레이아웃 관리자는 그리드, 팩 및 위치입니다. 그것들을 확인하고 위젯에 추가하십시오.

6

윈도우의 스크롤바는 place()입니다.

enter image description here

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() 
그러나 xy의 수동 계산은 place() 필요가있다. 당신이 항상 FrameTreeviewScrollbar를 넣을 수 있습니다 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() 

enter image description here

사용하고 더 좋은 곳에서 place(), pack() 또는 grid()으로이 프레임을 이동하는 것이 더 쉽습니다.

+0

이것은 정확히 내가 필요로 한 것입니다 .. 프레임 사용에 대한 추가 의견을 주셔서 감사합니다.이 Python 초보자를 잘 알고 있습니다. 감사합니다. –

+0

BTW : 버전이'Frame' : http://pastebin.com/e9CSs3NX – furas

+0

다시 .. 내가 필요한 것 .. 감사합니다. –