1

我正在编写(使用 C++ 和 GTKmm)一个简单的照片浏览器,可以在 GitHub 上找到:

https://github.com/jjkrol/ZPR

目前我正在创建一个按钮,它允许用户在外部编辑器(例如 GIMP)中打开当前显示的照片。因此,我有两个问题:

  • 有没有使用 Gtk::AppChooserDialog 类的例子?我找不到任何东西,没有它们就很难开始选择编辑器。

  • 最重要的问题 - 我正在考虑一种在命令行中启动带有照片的应用程序的方法。我想到的唯一解决方案是使用 system() 调用来做这样的事情: system("gimp /path/to/current/photo.jpg"); ,但这可能不是最好的方法。有人知道更好的方法吗?我想有一天将我的应用程序移植到 Windows,并且更便携的方式会很棒。

非常感谢您提前。

4

2 回答 2

1

您可能想要使用Glib::spawn_command_line_async而不是系统。如果您需要,还有其他类似的功能可以提供更多控制。

例如,您可能想查看glom之类的应用程序的源代码。

于 2012-05-25T06:02:56.603 回答
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尚未实现。

于 2012-05-26T16:56:19.250 回答