如何用 idlelib.TreeWidget 打开一个文件?
How to open a file with idlelib.TreeWidget?
我正在 Python 3.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()
您可以通过继承 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()
我正在 Python 3.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()
您可以通过继承 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()