如何在Tkinter/Python2.7.3中使用Windows资源管理器或Finder文件对话框?

1 投票
2 回答
7468 浏览
提问于 2025-04-17 15:42

我现在正在尝试创建一个基本的文本编辑器,这个编辑器可以打开文本文件、编辑它们,然后保存。我使用了这个 Tkinter对话框作为图形界面的“文件管理器”,但我想知道有没有人知道如何访问Windows自带的那个对话框?

谢谢!

一些技术信息:

操作系统:Windows 7

编程语言:Python 2.7.3

编辑 1

我说的默认文件对话框,是指Windows资源管理器的对话框:

文件选择器

我也使用Mac。如果我的应用程序是跨平台的,有没有办法让我程序检查操作系统,然后打开FinderWindows Explorer

我需要程序能够在不同的命令中保存和打开项目。我该怎么做呢?

2 个回答

1

试着导入tkFileDialog:

import tkFileDialog as tkfd
def save():
    savenm = tkfd.asksaveasfile()
    f = open(savenm.name,"w")
    # then put what to do with the opened file
def open():
    opennm = tkfd.askopenfile()
    f = open(savenm.name,"r")
    # then put what to do with the opened file

然后创建一个按钮,使用这些功能:

import Tkinter as tk
root=tk.Tk()
SAVELOADFRAME = tk.Frame(root)
SAVELOADFRAME.pack()
savebtn = Button(SAVELOADFRAME,text="Save",command=save)
savebtn.pack(side=LEFT)
root.mainloop()
loadbtn = Button(SAVELOADFRAME,text="Open",command=open)
loadbtn.pack(side=RIGHT)

如果你有一个记事本框,可能想把文件里的文本插入到tk.Text控件中。上面的代码其实只适用于文本文件(比如*.js、*.txt、*.py),而不适用于*.exe、*.dll等文件。

希望这能解决你的问题 :^)

1

你问的问题有点不太清楚,因为tkinter自带的那个在Windows上是默认的。这里有一个链接,以防你在某个地方搞混了。记住,你可以设置它只找到某种类型的文件,指定一个开始的位置,返回文件名或目录,甚至打开文件(我觉得是可以的)

如果你指的是Windows资源管理器,你可以用pywin32打开和关闭它,但其他功能就不多了。这个信息来自于这个回答

import subprocess
subprocess.Popen(r'explorer /select,"C:\path\of\folder\file"')

撰写回答