2015-11-28 4 views
0

Как я могу создать простой код valt Gtk приложения для открытия изображений в папке и отображения по одному?Виджет Gtk для получения и отображения одного изображения за один раз

Мне нужно создать приложение Vala, чтобы открыть папку изображений и отобразить одно изображение за раз.

У меня есть Gtk.Stack, чтобы показать только одно изображение, полученное для Gtk.FileChooserDialog, но я не могу сделать Gtk.Filechooser.Dialog, чтобы получать больше элементов и отображать их.

Благодаря

+0

Не могли бы вы сделать ваш вопрос немного яснее? Я не совсем понимаю ваш вопрос. – meskobalazs

+0

Извините, я хочу сделать приложение, чтобы открыть папку с изображениями и отобразить одно изображение за раз. –

+0

Вы можете сами выбрать папку, а не файлы. – meskobalazs

ответ

0

Там есть 2 решения:

  1. Вы хотите выбрать несколько файлов образуют ту же папку: Тогда просто сделать chooser.select_multiple = true; и вы получите SLIST из URIs файлов с помощью chooser.get_uris()

  2. Вам нужно просто выбрать папку: Затем создайте свой FileChooserDialog с правильным действием (Gtk.FileChooserAction.SELECT_FOLDER):

    var chooser = new Gtk.FileChooserDialog (
          "Pick the folder to load the images", this, 
          Gtk.FileChooserAction.SELECT_FOLDER, 
          "_Cancel", 
          Gtk.ResponseType.CANCEL, 
          "_Open", 
          Gtk.ResponseType.ACCEPT); 
    

    И когда вы получите нужную папку:

    if (chooser.run() == Gtk.ResponseType.ACCEPT) { 
        var folder = File.new_from_uri (chooser.get_uri()); 
        if (folder.query_exists() && folder.query_file_type (0) == FileType.DIRECTORY) { 
        // It's a directory and exists, so enumerate the children and do you stuff 
        } 
    } 
    chooser.close();