使用Tkinter的名为tree的treeview创建一个控件,在tree中有两级目录,当我选中一个二级目录,怎么样获取他的上级目录。
时间: 2024-02-23 19:00:42 浏览: 110
可以使用`tree.focus()`方法获取当前选中的行,并通过`tree.parent()`方法获取该行所属的父节点。具体实现可以参考下面的代码:
```python
import tkinter as tk
import tkinter.ttk as ttk
def get_parent():
# 获取当前选中的行
cur_item = tree.focus()
# 获取当前行所属的父节点
parent_item = tree.parent(cur_item)
# 如果父节点存在,则返回其文本值
if parent_item:
return tree.item(parent_item)['text']
else:
return None
root = tk.Tk()
tree = ttk.Treeview(root)
tree.pack()
tree.insert("", "0", "dir1", text="一级目录1")
tree.insert("", "1", "dir2", text="一级目录2")
tree.insert("dir1", "0", "subdir1", text="二级目录1")
tree.insert("dir1", "1", "subdir2", text="二级目录2")
tree.insert("dir2", "0", "subdir3", text="二级目录3")
tree.insert("dir2", "1", "subdir4", text="二级目录4")
btn = tk.Button(root, text="获取上级目录", command=get_parent)
btn.pack()
root.mainloop()
```
在上述代码中,我们创建了一个`ttk.Treeview`控件,并添加了两级目录。然后通过`tree.focus()`方法获取当前选中的行,再通过`tree.parent()`方法获取该行所属的父节点,并返回其文本值。最后,我们将获取上级目录的按钮与`get_parent`函数绑定,点击按钮即可在控制台中输出选中行的上级目录。
阅读全文