我正在编写(使用C ++和GTKmm)GitHub上提供的简单照片浏览器:
目前我正在创建一个按钮,允许用户在外部编辑器中打开当前显示的照片(例如GIMP)。因此,我有两个问题:
是否有使用Gtk :: AppChooserDialog类的示例?我找不到任何东西,没有它们就很难开始选择编辑器。
最重要的问题 - 我正在考虑在命令行中启动带照片的应用程序的方法。我想到的唯一解决方案是使用system()调用来执行以下操作:system(“gimp /path/to/current/photo.jpg”); ,但这可能不是最好的方法。谁知道更好的方法?我想有一天将我的应用程序移植到Windows上,并且更便携的方式会很棒。
非常感谢你。
答案 0 :(得分:1)
您可能希望使用Glib::spawn_command_line_async而不是系统。如果需要,还有其他类似的功能可以提供更多控制。
例如,您可能希望查看glom等应用程序的源代码。
答案 1 :(得分:0)
非常感谢你的回答,gpoo和ergosys!最后我决定使用Gio::Appinfo
,因为它看起来更像OOP。如果有人会遇到同样的问题 - 这就是我最终的结果:
Glib::RefPtr<Gio::AppInfo> editor = Gio::AppInfo::create_from_commandline("gimp",
"GIMP", Gio::APP_INFO_CREATE_SUPPORTS_URIS);
Glib::RefPtr<Gio::File> photo = Gio::File::create_for_path(
(*currentPhoto)->getPath().string());
editor->launch(photo);
当然,选择使用Gtk::AppChooserDialog
的编辑器尚未实施。