自作ダイアログ
概要
ダイアログを自作する。Gtk::Dialog を継承して自作ダイアログを作成すれば良い。
ソース
dialog.cpp#include <gtkmm.h> class MyDialog : public Gtk::Dialog { Gtk::Label m_label; public: MyDialog( const Glib::ustring& title, Gtk::Window& parent, bool modal = false, bool use_separator = false ); }; MyDialog::MyDialog( const Glib::ustring& title, Gtk::Window& parent, bool modal, bool use_separator ) : Gtk::Dialog( title, parent, modal, use_separator ) , m_label( "テスト" ) { // widgetをaddする時は直接 add せずに // vboxを取得してからそれにaddする get_vbox()->add( m_label ); // ボタン追加 add_button( Gtk::Stock::OK, Gtk::RESPONSE_OK ); add_button( Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL ); show_all_children(); } ///////////////////////////////////////////// class MainWin : public Gtk::Window { Gtk::Button m_bt; public: MainWin(); private: void on_bt_clicked(); }; MainWin::MainWin() : m_bt( "自作ダイアログ表示" ) { m_bt.signal_clicked().connect( sigc::mem_fun( *this, &MainWin::on_bt_clicked ) ); add( m_bt ); show_all_children(); } void MainWin::on_bt_clicked() { MyDialog diag( "自作ダイアログ", *this ); diag.run(); } int main( int argc, char *argv[] ) { Gtk::Main kit( argc, argv ); MainWin mainwin; Gtk::Main::run( mainwin ); return 0; }
コンパイル
必要なコンパイルオプションは pkg-config を使って取得する。g++ dialog.cpp -o dialog `pkg-config gtkmm-2.4 --cflags --libs`
結果
