学习提升Python

Python可视化编程 | TreeView树形控件

2020-01-13  本文已影响0人  不思九八

递归遍历枚举一目录下在的子目录和子文件,并使用Tkinter的TreeView控件显示:

import tkinter as tk
from tkinter import ttk
import os, fnmatch

window = tk.Tk()
 
# 定义列的名称
tree = ttk.Treeview(window, show = "tree")

def all_files(dir, root):
    for home, subdirs, files in os.walk(dir):
        for idx, dir in enumerate(subdirs):
            sub_path = os.path.join(home, dir)
            sub_id = tree.insert(root, idx, text=dir, open=1)
            all_files(sub_path, sub_id)    # 递归子目录
        for idx, fil in enumerate(files):
            tree.insert(root, idx, text=fil)
        break  # 一层就跳出,二层子文件由递归完成


root = tree.insert("", 0,text="目录", open=1)
all_files("F:\\TestFolder", root)


# 鼠标选中一行回调
def selectTree(event):
    for item in tree.selection():
        print(item, ' =>', tree.item(item))
     
# 选中行
tree.bind('<<TreeviewSelect>>', selectTree)
 
tree.pack(expand = True, fill = tk.BOTH)
 
window.mainloop()

说明:

上一篇 下一篇

猜你喜欢

热点阅读