2009-11-10 3 views
3

В моем коде, я такие строки:Можете ли вы установить FileFilters для диалога Gtk в Glade?

Builder builder = new Builder(); 
builder.AddFromFile(gladefile); 
FileChooserDialog dialog = 
    (FileChooserDialog) builder.GetObject("dialog"); 

FileFilter[] filters = new FileFilter[2]; 
filters[0] = new FileFilter(); 
filters[0].Name = "Some filter"; 
filters[0].AddPattern("*.someextension"); 
filters[1] = new FileFilter(); 
filters[1].Name = "All files"; 
filters[1].AddPattern("*"); 

foreach (FileFilter filter in filters) 
    dialog.AddFilter(filter); 
dialog.Filter = filters[0]; 
dialog.SetFilename(defaultFile); 

Есть ли способ настроить эти фильтры в Поляне, а не делать это вручную?

ответ

2

№ Вы можете создать объект фильтра файлов в поляне (версия 3.6 и выше) и добавить его в диалог, но поскольку вы не можете установить имя или шаблон фильтра файлов, это довольно бесполезно.

+0

Ну хорошо, хорошо. Знаете ли вы, планируете ли вы установить имя или шаблон? –

+0

Я не знаю, но это, вероятно, не до Glade. Glade (и GtkBuilder) позволяют вам устанавливать свойства GObjects, но файл фильтра не реализован как свойства GObject. Поэтому я не стал бы рассчитывать на это. – ptomato

3

Это возможно сейчас. Фрагмент кода, вероятно, следует искать что-то вроде этого:

builder = Gtk.Builder() 
    builder.add_objects_from_file("***name of glade file****.glade", 
     ("filechooserdialog1", "filefilter1")) 
    dialog = self.builder.get_object("filechooserdialog1") 
    filefilter = self.builder.get_object("filefilter1") 
    dialog.add_filter(filefilter) 

enter image description here

enter image description here

Смежные вопросы