ファイル選択ダイアログ
概要
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`
結果
実行するとファイル選択ダイアログが表示され、選択したファイル名がラベルに表示される。