【发布时间】:2013-09-29 11:28:20
【问题描述】:
我尝试实现一个文件管理器,问题出现在使用 Treeview 显示指定目录时,这会在 TotalCommander'e 中发生
这是一段代码:
from tkinter import *
from tkinter import ttk
class FileBrowser(Frame):
def __init__(self, root):
Frame.__init__(self, root)
self.master.title('Файловый менеджер')
self.master.geometry('1024x768')
listframe = Frame(root, bd=5)
listframe.pack(side='top', fill=BOTH, expand=1)
self.filedirlist = ttk.Treeview(listframe)
self.filedirlist["columns"]=("#1", "#2", "#3", "#4")
self.filedirlist.column("#0", width=175, minwidth=100)
self.filedirlist.column("#1", width=100, minwidth=100)
self.filedirlist.column("#2", width=100, minwidth=100)
self.filedirlist.column("#3", width=100, minwidth=100)
self.filedirlist.column("#4", width=100, minwidth=100)
self.filedirlist.heading("#0", text="Имя")
self.filedirlist.heading("#1", text="Режим")
self.filedirlist.heading("#2", text="Частота, МГц")
self.filedirlist.heading("#3", text="Размер, Мб")
self.filedirlist.heading("#4", text="Комментарий")
self.filedirlist.pack(side='top', fill=BOTH, expand=1)
listsb = Scrollbar(self.filedirlist,
orient=HORIZONTAL, command=self.filedirlist.xview)
listsb.pack(side=BOTTOM, fill=X)
self.listbuttonopen = Button(listframe,
text='Open').pack(side='left', padx='10', pady='5')
self.listbuttondelete = Button(listframe,
text='Delete').pack(side='left', padx='10', pady='5')
self.listbuttonload = Button(listframe,
text='Load').pack(side='left', padx='10', pady='5')
if __name__=='__main__':
root = Tk()
FileBrowser(root).pack()
root.mainloop()
当显示文件夹时,只有“Имя”和“Комментарий”列处于活动状态,其余列仅在选定文件夹的内容时处于活动状态。
实际上的问题是:是否可以使用 Treeview'ra 来实现它以及如何实现?)
附:对不起我的英语)
【问题讨论】:
标签: python treeview tkinter file-browser