python中tkinter treeview如何获取选中的条目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中tkinter treeview如何获取选中的条目相关的知识,希望对你有一定的参考价值。

我做了一个树形的列表,如何在lable上实时显示我选中的条目?我用tree.bind("<ButtonRelease-1>",popup)语句,popup()函数可以在命令行中打印出我选中的内容,但在lable上就是显示不了,想问下,如果在popup()函数中返回选中值,或者如何能上lable中显示选中值。def popup(event): x=tree.focus() print(x)

定义这样的函数去专门取tree上的值
def selectItem(a):
curItem = tree.focus()
print tree.item(curItem)
它返回一个字典类型的集合,你只要遍历字典就可以把你需要的值取出来。。。追问

先谢谢你的回答,定义函数用print确实可以在命令行中打印出值,但在lable上显示出一串数字+函数名,一直就卡在这儿了。

参考技术A 代码如下(PS:为什么源代码功能没了),请将#替换为空格:
import tkinter
from tkinter import ttk

def popup(event):
####print(tree.selection())
####string.set(tree.selection()[0])
####string.set(tree.focus())

win=tkinter.Tk()
tree=ttk.Treeview(win)
global string
string = tkinter.StringVar()
label=tkinter.Label(win, text="项目", textvariable=string)

myid=tree.insert("",0,"浙江",text="浙江",values=("1"))
myidx1=tree.insert(myid,0,"杭州",text="杭州",values=("2"))
myidx2=tree.insert(myid,1,"宁波",text="宁波",values=("3"))
myidy=tree.insert("",1,"山西",text="山西",values=("4"))
myidy1=tree.insert(myidy,0,"太原",text="太原",values=("5"))
myidy1=tree.insert(myidy,2,"大同",text="大同",values=("6"))

tree.bind("<ButtonRelease-1>", popup)
tree.pack()

label.pack()
win.mainloop()
参考技术B protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) Response.Write(TreeView1.SelectedNode.Value); protected void Button1_Click(object sender, EventArgs e) if(TreeView1.SelectedNode!=null) Response.Write("获取当前节点的value:" + TreeView1.SelectedNode.Value);

python 3 - tkinter - ttk treeview:查看列文本

我正在使用ttk的Treeview小部件在Tkinter中构建一个表。但是,在我插入列后,它们显示没有文本。这是代码:

w=Tk()
f=Frame(w)
f.pack()
t=Treeview(f,columns=("Titolo","Data","Allegati?"))
t.pack(padx=10,pady=10)
t.insert("",1,text="Sample")

结果如下:

我怎么解决?

谢谢

答案

您需要为每列定义标头。我不知道你是否想要为标题使用相同的列名,所以这将成为我的榜样。您可以将文本更改为您想要的任何内容。要定义标题,您需要像这样使用header()

t.heading("Titolo", text="Titolo")
t.heading("Data", text="Data")
t.heading("Allegati?", text="Allegati?")

通过这些更改,您的最终代码应如下所示:

from tkinter import *
from tkinter.ttk import *


w=Tk()

f = Frame(w)
f.pack()
t = Treeview(f, columns=("Titolo", "Data", "Allegati?"))

t.heading("Titolo", text="Titolo")
t.heading("Data", text="Data")
t.heading("Allegati?", text="Allegati?")

t.pack(padx=10, pady=10)
t.insert("", 1, text="Sample")

w.mainloop()

结果:

enter image description here

如果您有任何疑问,请告诉我。

以上是关于python中tkinter treeview如何获取选中的条目的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Tkinter 清除整个 Treeview

python tkinter treeview右键单击(Button-3)事件以选择树视图中的项目

如何在 tkinter.ttk Treeview 上完全更改背景颜色

python 3 - tkinter - ttk treeview:查看列文本

Python Tkinter Treeview使用可变SQL查询固定宽度

插入带标签的行时出现Tkinter Treeview问题