ファイル選択ダイアログ
概要
Gtk::FileChooserDialogを使ってファイル選択ダイアログを表示する。基本的にはGtk::MessageDialogと同様にすれば良いが、開くボタンとキャンセルボタンは自前で add_buttonする必要がある。ファイル名はGtk::FileChooser::get_filename() で取得する。
ソース
filediag.cpp#include <gtkmm.h> class MainWin : public Gtk::Window { Gtk::Label m_label; public: MainWin(); }; MainWin::MainWin() { Gtk::FileChooserDialog diag( "ファイル選択", Gtk::FILE_CHOOSER_ACTION_OPEN ); // 開く、キャンセルボタン diag.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK); diag.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); // フィルタ Gtk::FileFilter filt; filt.set_name("すべて"); filt.add_pattern("*"); diag.add_filter( filt ); switch( diag.run() ){ case Gtk::RESPONSE_OK: m_label.set_text( diag.get_filename() ); break; case Gtk::RESPONSE_CANCEL: m_label.set_text( "Cancel" ); break; } add( m_label ); show_all_children(); resize( 200, 100 ); } int main( int argc, char *argv[] ) { Gtk::Main kit( argc, argv ); MainWin mainwin; Gtk::Main::run( mainwin ); return 0; }
コンパイル
必要なコンパイルオプションは pkg-config を使って取得する。g++ filediag.cpp -o filediag `pkg-config gtkmm-2.4 --cflags --libs`
結果
実行するとファイル選択ダイアログが表示され、選択したファイル名がラベルに表示される。