【问题标题】:How to position all the elements of a ttk Treeview to the left?如何将 ttk Treeview 的所有元素定位到左侧?
【发布时间】:2019-05-24 16:14:34
【问题描述】:

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

这是我的代码:

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

The code shown gives you this

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

Then the result is this

【问题讨论】:

  • 我已经编辑了我的问题以使其更易于理解
  • 我不确定我理解你想要什么。您能否添加一个指向图像的链接,以说明您想要它的外观?您也可以通过在问题中插入纯文本布局来完成此操作。
  • 我放了一些图片以使其更清晰。我想得到的是图像 2 的结果,但没有标题,并且带有图像 1 的小加号按钮

标签: python tkinter treeview


【解决方案1】:

您可以在创建树列时将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()

【讨论】:

  • 问题是,当我使用列时,打开子树的加号按钮会消失
  • 我已将代码更新为有用的东西来说明我的问题
猜你喜欢
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2014-10-26
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多