自定义GtkFileChooser

iti*_*avi 5 gtk

这里有GTK + noob问题:

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

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

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

这就是我需要的: 在此输入图像描述

pto*_*ato 5

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

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


dko*_*kor 5

您可以通过使用gtkparasite找出每个孩子的位置,然后使用 get_children 访问它们来处理各个孩子。

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

例如,我使用以下语句隐藏 Path 和 Places 小部件:

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()
Run Code Online (Sandbox Code Playgroud)

当然,这不是公开的 API,因此它总是可以脱离底层更改。

希望这是有道理的...

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