2012-05-24 44 views
1

我寫(用C++和gtkmm的)一個簡單的照片瀏覽器,可在GitHub上:啓動外部編輯器中的gtkmm

https://github.com/jjkrol/ZPR

目前我創造一個按鈕的工作,這將允許用戶在外部編輯器中打開當前顯示的照片(例如GIMP)。正因爲如此,我有兩個問題:

  • 是否有使用GTK :: AppChooserDialog類的任何例子嗎?我找不到任何東西,很難開始在沒有它們的情況下選擇編輯器。

  • 最重要的問題 - 我正在考慮在命令行中使用照片啓動應用程序的方式。我唯一想到的解決方案是使用system()調用來做這樣的事情:system(「gimp /path/to/current/photo.jpg」); ,但它可能不是這樣做的最佳方式。任何人都知道更好的方法?我希望有朝一日將我的應用程序移植到Windows,而更便攜的方式會很棒。

非常感謝你提前。

+1

我_think_ Gio :: AppInfo可能是你應該看看#2。 – ergosys

回答

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是尚未實現。

1

除了系統,您可能還想使用Glib::spawn_command_line_async。還有其他類似的功能,如果你需要它可以提供更多的控制。

例如,您可能需要查看像glom這樣的應用程序的源代碼。

+0

感謝您的鏈接,很難找到任何GTKmm代碼! –