File GTK文件选择器对话框中的HTTP uri
GTK#可以用作统一的文件/URI对话框吗?我希望它接受http/https/ftp URI,而不“重写”它们(预先设置本地目录)File GTK文件选择器对话框中的HTTP uri,file,dialog,gtk,File,Dialog,Gtk,GTK#可以用作统一的文件/URI对话框吗?我希望它接受http/https/ftp URI,而不“重写”它们(预先设置本地目录) 即使我设置LocalOnly=false并粘贴http://.... 如果将uri放入filechooser内的文本框中,则无法获取原始条目。本地目录总是在文本前加上前缀。我做了一些研究,我认为这是不可能的。至少不能直接使用原生C GTK+API,这是我测试的 在我的测试中,我总是在对话框中输入的http://URI前面加上本地目录的路径,或者返回(null)。我确
即使我设置
LocalOnly=false
并粘贴http://.... 如果将uri放入filechooser内的文本框中,则无法获取原始条目。本地目录总是在文本前加上前缀。我做了一些研究,我认为这是不可能的。至少不能直接使用原生C GTK+API,这是我测试的
在我的测试中,我总是在对话框中输入的http://URI前面加上本地目录的路径,或者返回(null)。我确实调用了
方法,而不仅仅是()
作为参考,我还快速查看了应用程序的“文件”菜单。您可能知道,GIMP在GTK+中提供了G,因此它有时可以作为如何使用工具包的参考。GIMP不尝试支持在文件选择器对话框中输入的URI,相反,它有一个专用命令,只需一个GtkEntry即可打开一个简单的对话框。我做了一些研究,我认为这是不可能的。至少不能直接使用原生C GTK+API,这是我测试的 在我的测试中,我总是在对话框中输入的http://URI前面加上本地目录的路径,或者返回(null)。我确实调用了
方法,而不仅仅是()
作为参考,我还快速查看了应用程序的“文件”菜单。您可能知道,GIMP在GTK+中提供了G,因此它有时可以作为如何使用工具包的参考。GIMP不尝试支持在文件选择器对话框中输入的URI,而是有一个专用命令,这就打开了一个简单的对话框,只需要一个GtkEntry。我认为您需要设置为FALSE,然后使用GIO调用,该调用返回一个可通过
GIO
文件API访问的GFile*,因此通过gvfs我认为您需要设置为FALSE,然后使用GIO调用,该调用返回可通过GIO
文件API,因此通过gvfs
我找到了一个解决方案/破解方法(在C#中):
我不确定这是否总是安全的,但它适用于标准的FileChooserDialog。它将从输入字段返回原始字符串-即使标准Uri/文件结果被破坏。我找到了一个解决方案/破解方法(在C#中):
我不确定这是否总是安全的,但它适用于标准的FileChooserDialog。它将从输入字段返回原始字符串-即使标准Uri/文件结果被破坏
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;
}