【问题标题】:HTTP uri in a GTK# FileChooserDialogGTK# FileChooserDialog 中的 HTTP uri
【发布时间】:2009-05-04 19:17:04
【问题描述】:

GTK# 的FileChooserDialog 可以用作统一的文件/URI 对话框吗?我希望它接受 http/https/ftp URI 而无需“重写”它们(预先添加本地目录)。

即使我设置 LocalOnly=false 并将 http://.... uri 粘贴到文件选择器内的文本框中,我也无法获得原始条目。本地目录总是附加在文本之前。

【问题讨论】:

    标签: file dialog gtk


    【解决方案1】:

    我做了一些研究,但我认为这是不可能的。至少不是直接使用原生 C GTK+ API,这是我测试的。

    在我的测试中,我总是将本地目录的路径添加到我在对话框中输入的 http:// URI 前面,或者返回(null)。我确实调用了@987654321@ 方法,而不仅仅是@987654322@()

    作为参考,我还快速浏览了GIMP 应用程序的“文件”菜单。您可能知道,GIMP 在 GTK+ 中提供了 G,因此有时可以将其用作有关如何使用该工具包的想法的参考。 GIMP 不尝试支持在文件选择器对话框中输入的 URI,而是有一个专用的 Open Location 命令,它打开一个只有 GtkEntry 的简单对话框。

    【讨论】:

      【解决方案2】:

      我认为您需要将 local-only 设置为 FALSE,然后使用 GIO get_file ()/get_files () 调用返回可通过 GIO 文件 API 访问的 GFile*,因此可通过 gvfs 访问。

      【讨论】:

        【解决方案3】:

        毕竟(在 C# 中)我找到了解决方案/破解:

        private string _extractUri(Widget wi) {
            if (wi is Entry)
                return ((wi as Entry).Text);
            else if (wi is Container) {
                foreach (Widget w in (wi as Container).Children) {
                    string x = _extractUri(w);
                    if (x!=null)
                        return x;
                }
            }
            return null;
        }
        

        我不确定这是否总是安全的,但它适用于标准 FileChooserDialog。它将从输入字段返回原始字符串 - 即使标准 Uri / 文件结果被破坏。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-09-28
          • 1970-01-01
          • 2011-02-05
          相关资源
          最近更新 更多