小编Ale*_*eat的帖子

在 tkinter 树视图内创建网格线

我有一个用 tkinter 制作的简单树视图。是否可以在 tkinter treview 中制作一个网格,以便它看起来更像一个表格?

我想让它更加“用户友好”,这样表/树视图的可视化可以更好。

from tkinter import *
from tkinter import ttk

myApp = Tk()
myApp.title(" Program ")                         
myApp.geometry("800x700")


tree = ttk.Treeview(myApp,height=25)
tree['show'] = 'headings'

sb = ttk.Scrollbar(myApp, orient="vertical", command=tree.yview)
sb.grid(row=1,column=1,sticky="NS",pady=5)

tree.configure(yscrollcommand=sb.set)

tree["columns"]=("1","2","3")

tree.column("1", width=50)
tree.column("2", width=50)
tree.column("3", width=50)

tree.heading("1", text="Col 1")
tree.heading("2", text="Col 2")
tree.heading("3", text="Col 3")

item = tree.insert("", "end", values=("",))

tree.grid(row=1,column=0,padx=5,pady=5)

myApp.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter

5
推荐指数
1
解决办法
1万
查看次数

手动更改树视图中的值和列名称

有没有什么方法可以通过单击要编辑的单元格来更改/删除/更新或在树视图中添加新值?列名称的问题是相同的,我可以通过单击并在其上书写来手动更改列名称吗?

这是我编写的树视图代码:

from tkinter import *
from tkinter import ttk

myApp = Tk()
myApp.title("tree")                         
myApp.geometry("300x400")

tree = ttk.Treeview(myApp)
tree['show'] = 'headings'

sb = ttk.Scrollbar(myApp, orient="vertical", command=tree.yview)
sb.grid(row=1,column=12,rowspan=12,sticky="NS")

tree.configure(yscrollcommand=sb.set)

tree["columns"]=("1")

tree.column("1", width=230)
tree.heading("1", text="Name")

tree.insert("","end", values=("item"))

tree.grid(row=1 ,column=0,pady=5)

myApp.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter

1
推荐指数
1
解决办法
3874
查看次数

将值添加到树视图 Tkinter 中的特定列

我制作了一个树视图,我想在第一列和第二列中添加值,然后程序需要计算当您按 ENTER 按钮时将放入第三列的值(我使用了事件和绑定)。我不知道如何将值放入 Treeview 的特定列中,我总是收到此错误:

TypeError: 'float' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

我知道如何一次在每一列中插入值,但我不知道如何在不更改其他列中的值的情况下仅将一个值插入到特定列中。这是我写的函数:

def PlannedCosPerSize(event):

    try:
        for child in tree.get_children():
            Size=round(float(tree.item(child,"values")[1]),2)
            PlannedCost=round(float(tree.item(child,"values")[2]),2)
            PlanCostPerSize=float(round(PlannedCost/Size,2))

            tree.insert("","end", values=(PlanCostPerSize)[4])

            print(PlanCostPerSize)


    except IndexError:
        Error=messagebox.showinfo("error","You have error")
        pass

tree.bind('<Return>', PlannedCosPerSize)  # validate with Enter
Run Code Online (Sandbox Code Playgroud)

python treeview tkinter

0
推荐指数
1
解决办法
7416
查看次数

标签 统计

python ×3

tkinter ×3

treeview ×1