我一直在为Gtk.FileChooserDialog
苦苦挣扎。似乎并不总是显示最近的文件。
然后我注意到它仅显示名称中没有空格的文件!当我将文件名从Data 2018.txt
更改为Data_2018.txt
并打开它后,在“最近使用的文件”列表中看起来就很好了。
这应该是功能吗?因为在Windows(我正在运行的平台)上,这是一件很糟糕的事情。
更新: 我终于找到了存储“最近”项目的文件:
C:\ Users \ [用户] \ AppData \ Local \ recently-used.xbel
我能够发现实际上“ Data 2018.txt”仍在此XML文件中。我删除了它,然后再次运行测试:浏览并打开名称中带有空格的文件,将其关闭,再次打开-并且“最近的文件”列表中有该空格的文件名!
那么,“最近”是否不显示所有可用文件(在该最近使用的.xbel XML文件中收集的文件),而是仅显示较新的文件?还是会导致存储在该文件中的“最新”文件不显示?
我以前没有包含我的代码,因为它是打开的标准文件:
msg = _("Choose text(s) to open...")
chooser = Gtk.FileChooserDialog(msg, self.window,
Gtk.FileChooserAction.OPEN,
(Gtk.STOCK_OPEN, Gtk.ResponseType.OK,
Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
chooser.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
chooser.set_default_response(Gtk.ResponseType.CANCEL)
chooser.set_select_multiple(True)
# set up file filters for the chooser
filter = Gtk.FileFilter()
filter.set_name(_("Text files"))
filter.add_pattern("*.txt")
filter.add_pattern("*.sfm")
chooser.add_filter(filter)
filter = Gtk.FileFilter()
filter.set_name(_("All files"))
filter.add_pattern("*")
chooser.add_filter(filter)
if chooser.run() == Gtk.ResponseType.OK:
filenames = chooser.get_filenames()
# process files...