使用python 3
和tkinter
我试图创建一个文件对话框,允许用户选择现有目录(exists=True
)。你知道吗
当他们选择choose
时,我想检查目录是否可读,并且我可以获得一个文件锁。因为我的程序的其余部分将依赖于对路径的读访问,它的进程将需要很长时间。你知道吗
他们选择cancel
我想关闭这个对话框。你知道吗
如果目录不是readable
,我希望文件对话框显示askretry
消息。单击Retry
将使他们返回以选择文件。单击Cancel
将关闭对话框。你知道吗
在我的第一次尝试中,作为tkinter
的新手,我创建了以下内容:
import os
from tkinter import filedialog
from tkinter import messagebox
class OpenDialog(object):
def __init__(self):
self.directory_path = None
self.dialog_title ="Photos Directory Selection"
def ask_for_directory(self):
while not self.directory_path:
self.directory_path = filedialog.askdirectory(mustexist=True, title=self.dialog_title)
if not os.access(os.path.dirname(self.directory_path), os.F_OK):
self.directory_path = None
if not messagebox.askretrycancel(title=self.dialog_title, message="Can't read directory."):
break
虽然它并不完美。它不会让你cancel
打开文件对话框。你知道吗
但是,唉,我想我可能会连接到文件对话本身。。。你知道吗
我只是看不出我如何能够干净地连接到FileDialogue类,以干净地显示askretry
对话框并重复这个过程。你知道吗
如果我缺少什么,请分享:-)
这是可行的,但是有人看到递归调用有问题吗?你知道吗
编辑:
这是我的例子,但纠正工作。。。你知道吗
相关问题 更多 >
编程相关推荐