首页 > 解决方案 > 如何将 ttk Treeview 的所有元素定位到左侧?

问题描述

我想要一个树视图,其中所有元素都锚定在左侧,没有标题,并且带有扩展子值的小加号按钮。出于某种原因,我不能同时让这三件事起作用。

这是我的代码:

import tkinter as tk
from tkinter import ttk

list1 = ["N_1", "N_13", "N_17"]
list2 = ["N_8", "N_3", "N_5", "N_19"]

root = tk.Tk()
frame = tk.Frame(root)
frame.place(x=0, y=0, relwidth=1, relheight=1)
tree = ttk.Treeview(frame)
tree["show"] = "tree"
tree.place(x=0, y=0, relwidth=1, relheight=1)
tree['columns'] = ["Col1"]
tree.column("Col1", anchor='w') #n, ne, e, se, s, sw, w, nw, or center
tree.insert("", "end" , values= "Num1")
for i in list1:
    tree.insert("", "end" , values= i)
id = tree.insert("", "end")
for i in list2:
    tree.insert(id, "end", values=i)

root.mainloop()

显示的代码为您提供了这个

如果将显示属性更改为“标题”

那么结果是这样的

标签: pythontkintertreeview

解决方案


anchor您可以在创建树列时作为参数传递。

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
tree = ttk.Treeview(root)
header = ('size',)
tree['columns'] = header
tree.column('size', width=100, anchor='w') #n, ne, e, se, s, sw, w, nw, or center
tree.heading('size', text='Size')
tree.insert("",0,values=("Left",))
tree.pack()

root.mainloop()

推荐阅读