Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Tkinter/Python2.7.3中使用Windows资源管理器或查找器文件对话框?_Python_Windows_Tkinter_Finder_Windows Explorer - Fatal编程技术网

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

如何在Tkinter/Python2.7.3中使用Windows资源管理器或查找器文件对话框?,python,windows,tkinter,finder,windows-explorer,Python,Windows,Tkinter,Finder,Windows Explorer,除此之外,我目前正在尝试创建一个基本的文本编辑器,它可以打开文本文件,编辑它们,然后保存它们。我曾使用Tkinter对话作为GUI“文件管理器”,但我想知道是否有人知道如何访问Windows上的默认对话框 谢谢 技术事项: 操作系统:Windows7 语言:Python 2.7.3 编辑1 默认文件对话框是指windows资源管理器对话框: 我也使用mac。假设我的应用程序是跨平台的,有没有办法让程序检查操作系统是什么,然后打开Finder或Windows资源管理器。 我需要该程序能够保存和打

除此之外,我目前正在尝试创建一个基本的文本编辑器,它可以打开文本文件,编辑它们,然后保存它们。我曾使用Tkinter对话作为GUI“文件管理器”,但我想知道是否有人知道如何访问Windows上的默认对话框

谢谢

技术事项:

操作系统:Windows7

语言:Python 2.7.3

编辑1

默认文件对话框是指windows资源管理器对话框:

我也使用mac。假设我的应用程序是跨平台的,有没有办法让程序检查操作系统是什么,然后打开
Finder
Windows资源管理器。


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

现在还不清楚你在问什么,因为tkinter附带的是Windows中的默认设置。这是另一个例子,以防万一你在这条线上的某个地方被搞混了。请记住,您可以将其设置为只查找特定类型的文件,从特定位置开始,返回文件名或目录,甚至打开文件(我认为)

如果您指的是
Windows资源管理器
,您可以使用
pywin32
打开和关闭它,但其他功能不多。摘自


尝试导入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等


希望能解决您的问题:^)

这真的很有帮助,但我的文件是用记事本打开的,而不是我的应用程序。有没有办法让它选择文件,然后让python读取并显示它?您可以编辑注册表,使python程序成为临时打开该类型文件的默认程序,但我不建议这样做。据我所知,
tkinter
使用默认的Windows(以及OS X和Gtk+)文件对话框,但问题是Windows有大约35种不同风格的文件对话框,默认的是看起来像Win95的对话框,而不是你想要的那种新奇的对话框。我在这里吗?@abarnert你完全正确!我希望能够打开文件-与默认文件类似,但我不希望看到丑陋的外观。与您的问题无关,但我认为值得注意的是:您应该激活文件扩展名的显示。这是Windows默认配置的严重安全漏洞。(否则你很容易上当。例如,你认为你正在打开一个图像,但它是一个可执行文件。只有扩展无法欺骗你)@JeromeJ谢谢你的建议!我不知道那很危险。幸运的是,我已经在我的电脑上设置好了,这是我在网上找到的一张照片。
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)