Как убрать лишнюю колонку в Treeview?
Есть код:
import os
import glob
from tkinter import *
from tkinter import ttk
os.chdir("C:/")
def populate_tree(tree, node):
path = tree.set(node, "fullpath")
tree.delete(*tree.get_children(node))
parent = tree.parent(node)
special_dirs = [] if parent else glob.glob('.') + glob.glob('..')
for p in special_dirs + os.listdir(path):
ptype = None
p = os.path.join(path, p).replace('\\', '/')
if os.path.isdir(p): ptype = "directory"
elif os.path.isfile(p): ptype = "file"
fname = os.path.split(p)[1]
id = tree.insert(node, "end", text=fname, values=[p, ptype])
if ptype == 'directory':
if fname not in ('.', '..'):
tree.insert(id, 0, text="dummy")
tree.item(id, text=fname)
def populate_roots(tree):
dir = os.path.abspath('.').replace('\\', '/')
node = tree.insert('', 'end', text=dir, values=[dir, "directory"])
populate_tree(tree, node)
def update_tree(event):
tree = event.widget
try:
populate_tree(tree, tree.focus())
except:
pass
def change_dir(event):
tree = event.widget
node = tree.focus()
if tree.parent(node):
try:
path = os.path.abspath(tree.set(node, "fullpath"))
print(path)
file=open(path,"r")
ri=file.read()
label.delete(1.0, END)
label.insert(1.0, ri)
file.close()
except:
pass
root = Tk()
vsb = Scrollbar(orient="vertical")
hsb = Scrollbar(orient="horizontal")
tree = ttk.Treeview(columns=("fullpath"))
vsb['command'] = tree.yview
hsb['command'] = tree.xview
tree.heading("#0", text="Directory Structure", anchor='w')
label=Text(root,font=("Ubuntu",2))
populate_roots(tree)
tree.bind('<<TreeviewOpen>>', update_tree)
tree.bind('<Double-Button-1>', change_dir)
hsb.pack(side=BOTTOM,fill=X)
tree.pack(side=LEFT,fill=Y)
vsb.pack(side=LEFT,fill=Y)
label.pack(side=LEFT,fill=Y)
root.mainloop()
(Результат:)
И мне нужно убрать выделенную красным цветом колонку
Ответы (2 шт):
Автор решения: insolor
→ Ссылка
Можно при создании дерева указать параметр displaycolumns=() (с пустым списком или пустым кортежом), тогда дополнительные колонки кроме колонки дерева отображаться не будут:
tree = ttk.Treeview(columns=("fullpath"), displaycolumns=())

