2010-12-26 11 views
1

変更のために複数のディレクトリを監視する必要があります。私はGtk::Mainを使用しており、Gio::Initを呼び出しており、ドキュメントが示唆している通りに正確にディレクトリモニタを追加しています。ただし、どのディレクトリに対してもコールバックは呼び出されません。モニター専用に別のループが必要ですか?その場合、どうすればGtk::Mainと一緒に使用できますか?gtkmmアプリケーションでGioファイルモニター

+0

サンプルコードに従っていますか?こちらをご覧ください:http://svn.gnome.org/viewvc/gtkmm-documentation/trunk/examples/book/giomm/monitor_directory/monitor_directory.cc?revision=83&view=markup – Mark

+0

はい、私はその例に従っています。問題は、 'Gtk :: Main'と' Glib :: MainLoop'を同時にどのように使うのでしょうか?明らかにGioのFileMonitorには 'Glib :: MainLoop'が必要です。私は別のスレッドを試してみましたが、うまくいかなかったのです。 – dav

答えて

1

私はValaで同じ問題を抱えていましたが、ここでは完全な解決策です。

Andrea Azzaroneから指摘されているように、Gtk::Mainループを使用できます。

ただし、Gio::FileMonitorの参照には注意してください。関数の最後には破棄され、Gio::FileMonitorオブジェクトへの参照を保持しないとコールバックは呼び出されません。

このアイデアはthis answerにあります。

1

Glt :: MainLoopなので、Gtk :: Mainループだけを使うことができます。