首先使用Python 3.4和Gtk3以编程方式将FileChooserDialog更改为列出目录?

sdo*_*ble 5 python gtk

我是用Gtk进行UI开发的新手,遇到了一些我没想到的东西.FileChooser会按名称自动排序,无论它是文件还是目录.我喜欢首先列出目录,人们习惯/期待它.

有什么方法可以让FileChooser以这种方式行事吗?

编辑:在大多数主要的可视文件管理器中,它是在文件之前列出目录的默认行为.这些链接显示了人们通常在文件管理器中看到的内容: konqueror,nautilus,thunar,windows,osx,这就是我用Gtk FileChooser看到的内容.我有没有办法让它看起来像默认情况下的其他文件管理器,使用代码?

EDIT2,我打开它的代码:

dialog=Gtk.FileChooserDialog("Select a file",self,
        Gtk.FileChooserAction.OPEN,(
            Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
            Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
response=dialog.run()
Run Code Online (Sandbox Code Playgroud)

sdo*_*ble 2

感谢 Fabby 和 ThorSummoner 的评论,我偶然发现了最接近的解决方案。使用 GSettings,我可以从应用程序更改 FileChooser 设置,但只能全局更改。在这种情况下这应该没问题,因为用户可能更喜欢在其系统上使用所有基于 Gtk 的 FileChoosers 获得相同的体验。

from gi.repository import Gio

setting = Gio.Settings.new("org.gtk.Settings.FileChooser")
setting.set_boolean("sort-directories-first", True)
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,将其设置为 False 将仅按名称排序,而不会将目录分组在一起。

该设置还可以使用Gio.Settings.bind()绑定到控件

我选择了一个设置开关,用户可以根据自己的喜好进行设置。