2017-01-26 10 views
2

Моей средой является Windows 7 с использованием 64-разрядной версии Python 3.4. Я пытаюсь прикрепить панель прокрутки к виджету treeview. Я попробовал несколько версий, но не смог заставить его работать. То, что я пытался до сих пор:Prollon Treeview scrollbar

# 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() ваша полоса прокрутки в окне.

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() 

enter image description here

Но 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() 

enter image description here

Вы всегда можете поставить Treeview и Scrollbar в Frame, а затем переместить этот кадр с place(), pack() или grid() в лучшем месте.

+0

Это именно то, что мне нужно .. оцените дополнительные комментарии по использованию фрейма .. хорошо знать для этого начинающего Python .. Спасибо –

+0

BTW: версия с 'Frame': http://pastebin.com/e9CSs3NX – furas

+0

Снова .. просто то, что мне нужно .. спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^