在 GTKmm 中启动外部编辑器
Launching external editor in GTKmm
我正在编写(使用C++和GTKmm)一个简单的照片浏览器,可以在GitHub上找到:
https://github.com/jjkrol/ZPR
目前,我正在努力创建一个按钮,该按钮将允许用户在外部编辑器(例如GIMP)中打开当前显示的照片。因此,我有两个问题:
-
是否有使用 Gtk::AppChooserDialog 类的示例?我找不到任何编辑器,如果没有它们,很难开始选择编辑器。
-
最重要的问题 - 我正在考虑一种在命令行中使用照片启动应用程序的方法。我想到的唯一解决方案是使用 system() 调用来做这样的事情:system("gimp/path/to/current/photo.jpg");,但这可能不是最好的方法。有人知道更好的方法吗?我想有一天将我的应用程序移植到 Windows,一种更便携的方式会很棒。
提前非常感谢你。
你可能想使用 Glib::spawn_command_line_async,而不是系统。 如果需要,还有其他类似的功能可以提供更多控制。
例如,您可能希望查看 glom 等应用程序的源代码。
非常感谢您的回答,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
编辑器尚未实现。
相关文章:
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- "未定义对'WinMain@16'的引用"gcc 编辑器中的错误
- 如何从C++而不是虚幻编辑器中添加静态网格体组件的值?
- UE4 - Visual Studio在我从编辑器添加新的c ++文件后无法打开任何源文件 - UBT_COMPILED
- 图标编辑器中的自定义颜色 (VS 2015)
- Qt的QFontMetrics::horizontalAdvance()缺少代码编辑器实现
- 如何在文本编辑器中处理 [-Wc++11-extensions]
- C++链接编辑器找不到函数声明(未定义的引用)
- 如何将按钮添加到节点的属性编辑器面板,该面板调用该节点内的方法?
- QT创建者(4.2.2)编辑器中的独特指针导航
- 带有cmake的qtCreator,编辑器中未正确解析__cplusplus值
- 检查重叠时,虚幻编辑器会崩溃
- 如何在Windows中将使用Qt制作的记事本设置为默认文本编辑器
- 尝试在自定义 QT 创建器文本编辑器中创建查找和替换循环.我似乎无法设置光标位置
- UTF-16LE 编码问题与 Qt 文本编辑器用 C++ 编写
- Qt无法手动连接到任何插槽(UI编辑器)
- 编辑器(VS2019)拒绝了示例中的getline(stream,string)
- Qt委托编辑器弹出,没有父级
- 在 GTKmm 中启动外部编辑器
- 如何在Qt/Android上的默认外部编辑器中打开文件