2016-06-21 2 views
0

Может кто-нибудь сказать мне, какой тип сигнала для FileChooserButton Мне нужно использовать, чтобы получить путь к файлу, нажав на фактический файл в FileChooserDialog, который был поднят FileChooserButton? Я использовал сигналы file_set и file_activated, но ничего не произошло.FileChooserButton Gtk

Я использовал пример из документации на языке Вала. И я не уверен, должны ли быть кнопки Open \ Cancel в этом диалоговом окне (см. Скриншот ниже)?

Вот код, который я использовал:

Gtk.FileChooserButton file_chooser = new Gtk.FileChooserButton(
     "Select a file", 
     Gtk.FileChooserAction.OPEN); 
file_chooser.set_show_hidden(true); 
file_chooser.set_local_only(false); 
file_chooser.set_current_folder("/home"); 

Gtk.FileFilter filter = new Gtk.FileFilter(); 
filter.add_mime_type("application/x-shellscript"); 

file_chooser.set_filter(filter); 
file_chooser.file_set.connect(() => { 
    string uri = file_chooser.get_uri(); 
    stdout.printf("Uri: %s", uri); 
}); 

Screenshot

Заранее спасибо!

+0

Отсутствует «\ n» в вашем printf, я думаю – jku

+0

'file-set' - это когда пользователь нажимает кнопку« Открыть », чтобы выбрать файл, тем самым изменяя файл, представленный GtkFileChooserButton. 'file-activated' - это когда пользователь дважды щелкает файл в файле GtkFileChooserWidget; Я предполагаю, что GtkFileChooserDialog и GtkFileChooserButton - это как нажатие кнопки «Открыть». [Я предполагаю, что вы хотите 'selection-changed'?] (Https://developer.gnome.org/gtk3/stable/GtkFileChooser.html#GtkFileChooser-selection-changed) То есть, предполагая, что я правильно прочитал ваш вопрос и что вы хотите получать уведомления при нажатии на элемент в списке. Я? – andlabs

ответ

0

Решено! Проблема заключалась в отсутствующих кнопках Ok\Cancel, это происходит только в элементарной ОС, я считаю.

Команда: gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/DialogsUseHeader':<0>}" это была работа! Спасибо за ответы.

+0

Файл с ошибкой с Элементарными авторами? Предполагая, что вы используете последнюю версию всего ... – andlabs

+0

@andlabs да, я подал ошибку. И я обновляю его каждый день – Tony