自定义GtkFileChooser

时间:2011-07-08 14:06:00

标签: gtk

GTK + noob问题:

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

我实际上要做的是允许用户仅从特定文件夹(我使用 gtk_file_chooser_set_current_folder 设置)中选择文件,并禁用导航到文件系统上的其他位置。 / p>

这是标准文件选择器对话框: The standard GtkFilechooser Dialog

这就是我需要的: enter image description here

2 个答案:

答案 0 :(得分:5)

标准文件选择器对话框看起来不太可能。例如,here是一份文件,讨论为什么这样的东西会有用以及如何实现它,但这个想法从未实现过。

您可以做的是编写自己的对话框,根据GtkFileChooser代码实现GtkFileChooserDialog界面,但隐藏位置栏和书签列表。

答案 1 :(得分:4)

您可以通过查找 gtkparasite 的位置,然后使用get_children访问它们来了解各个孩子。

确保使用.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,所以它总能打破基础变化。

希望它有意义......

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