Gtk 小部件一次接收和显示一个图像

Gtk widget to receive and display one Image at a time

我如何创建应用程序的简单 vala Gtk 代码来打开文件夹的图像并一次显示一个图像?

我必须创建一个 Vala 应用程序来打开图像文件夹并一次显示单个图像。

我有一个 Gtk.Stack 只显示 Gtk.FileChooserDialog 收到的一张图片,但我无法 Gtk.Filechooser.Dialog 接收更多元素并显示它们。

谢谢

有2种解决方案:

  1. 您想 select 多个文件形成同一个文件夹:然后只需执行 chooser.select_multiple = true; 并且您将通过 chooser.get_uris()[ 获得文件 URI 的 SList =15=]

  2. 您只需要 select 文件夹:然后使用适当的操作创建您的 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 ();