C++ gtkmm:FileChooserDialog 不适用于任何驱动器

Posted

技术标签:

【中文标题】C++ gtkmm:FileChooserDialog 不适用于任何驱动器【英文标题】:C++ gtkmm: FileChooserDialog not working with any drives 【发布时间】:2018-05-31 11:34:11 【问题描述】:

如何使用Gtk::FileChooserDialog 浏览本地或特别是网络驱动器?我看到了包括网络驱动器在内的所有驱动器(我想浏览这些驱动器),但是当我单击它时,什么也没有发生,或者我被重定向到不同的文件夹。

Gtk::FileChooserDialog dialog("Please choose a folder",Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER);
dialog.set_transient_for(*this);
int result = dialog.run();
//go on with other code

只有浏览文档、下载等快捷方式才有效。如果这很重要,我正在使用带有 gtkmm 3.0 的 Windows 7。当然,可以从 explorer 或 cmd 访问所有驱动器。

编辑:可以通过在 Windows 下编译此代码来重现该行为:https://developer.gnome.org/gtkmm-tutorial/stable/sec-dialogs-filechooserdialog.html.en 并尝试浏览驱动器 C,例如。

任何人都可以设法重现相同的行为吗? 谢谢

【问题讨论】:

你试过使用 dialog.set_current_folder("path") 吗? 当然不行。浏览器开始空白 【参考方案1】:

找到原因。

这实际上是几天前报告的错误 (https://gitlab.gnome.org/GNOME/gtk/issues/170)。解决方案是使用修复程序 (https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-glib2/W32-gstdio-Dont-try-to-get-reparse-tag-uncondition.patch) 更新您的 glib2。或者等待/升级到 glib 2.56.2。

应用修复后,一切正常。

【讨论】:

以上是关于C++ gtkmm:FileChooserDialog 不适用于任何驱动器的主要内容,如果未能解决你的问题,请参考以下文章

C++ GTKmm - 如何获取我的 TextView (TextBuffer) 的内容

C++ GTKMM,在文本缓冲区中得到一个奇怪的输出

C++ gtkmm:FileChooserDialog 不适用于任何驱动器

将 C 中的 gtk3 与 C++ 中的 gtkmm 结合起来

C++ vector 和 Gtkmm 能完美地协同工作吗?从 gtkmm on_click 方法获取向量<string> 的值时出现分段错误

GTKmm3 (GTK+ 3 C++) 编译但运行时抛出 GLib-GIO-CRITICAL 错误