自定义GtkFileChooser

自定义GtkFileChooser,gtk,Gtk,GTK+noob问题如下: 是否可以自定义GtkFileChooserButton或GtkFileChooserDialog以删除“位置”部分(左侧)和顶部的“位置”输入框 基本上,我试图做的是允许用户仅从特定文件夹(我使用gtk_file_chooser_set_current_folder设置该文件夹)中选择文件,并禁用导航到文件系统上的其他位置 这是标准文件选择器对话框: 这就是我需要的: 标准文件选择器对话框似乎不可能实现这一点。例如,一份文件讨论了为什么这样一件事会有用以及如何实施,

GTK+noob问题如下:

是否可以自定义GtkFileChooserButton或GtkFileChooserDialog以删除“位置”部分(左侧)和顶部的“位置”输入框

基本上,我试图做的是允许用户仅从特定文件夹(我使用gtk_file_chooser_set_current_folder设置该文件夹)中选择文件,并禁用导航到文件系统上的其他位置

这是标准文件选择器对话框:

这就是我需要的:

标准文件选择器对话框似乎不可能实现这一点。例如,一份文件讨论了为什么这样一件事会有用以及如何实施,但这个想法从未实现


您可以做的可能是,基于
GtkFileChooserDialog
code,编写自己的对话框,实现
GtkFileChooser
接口,但是隐藏了位置栏和书签列表。

您可以通过使用gtkparasite找到每个子项的位置,然后使用get_子项访问它们,从而获得单个子项的句柄

确保使用.show()而不是.run()检查带有gtkparasite的对话框。如果使用.run(),对话框将以模态模式显示,因此您无法检查它

例如,我使用以下语句隐藏路径并放置小部件:

dialog = gtk.FileChooserDialog("Open***", None, gtk.FILE_CHOOSER_ACTION_OPEN,
            (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialog.set_show_hidden(True)
dialog.set_default_response(gtk.RESPONSE_OK)       
vbox = dialog.get_children()[0].get_children()[0].get_children( [0].get_children()[0]
vbox.get_children()[0].hide()
vbox.get_children()[2].get_children()[0].hide()
当然,这不是一个公开的API,所以它总是可以脱离底层的更改

希望它有意义

尝试发布图像,但我是新用户