如何使用打开文件idlelib.TreeWidget?

2024-04-19 20:23:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python3.5制作一个文件浏览器,我已经包括了重命名和查看,但不确定如何使它在您单击文件时打开。我知道如何使用os.startfile("file"),但我不知道该把它包括在哪里。在

try:
    from Tkinter import *
except ImportError:
    from tkinter import *

from idlelib.TreeWidget import ScrolledCanvas, FileTreeItem, TreeNode

root = Tk()
root.title("Browser")
sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both", side="left")
loc = input("Please enter your directory: ")
item = FileTreeItem(loc)
node = TreeNode(sc.canvas, None, item)
node.expand()
root.mainloop()

Tags: 文件fromimportnodeos浏览器rootitem
1条回答
网友
1楼 · 发布于 2024-04-19 20:23:27

通过子类化idlelib.TreeNode并重写继承的select()方法,可以获得与TreeNode关联的文件名。在

我的意思是:

try:
    from Tkinter import *
except ImportError:
    from tkinter import *

from idlelib.TreeWidget import ScrolledCanvas, FileTreeItem, TreeNode

class MyTreeNode(TreeNode):
    def select(self, event=None):
        TreeNode.select(self, event)  # can't use super() here in Python 2
        print('select called')
        print('self.item.GetText(): {!r}'.format(self.item.GetText()))
        print('self.item.path: "{}"'.format(self.item.path))  # call os.startfile() here

root = Tk()
root.title("Browser")

sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both", side="left")

loc = input("Please enter your directory: ")
item = FileTreeItem(loc)

node = MyTreeNode(sc.canvas, None, item)
node.expand()

root.mainloop()

相关问题 更多 >