チェックボタンとトグルボタン
概要
Gtk::CheckButton と Gtk::ToggleButton によりチェックボタンとトグルボタンを作る。チェック状態はget_active()メンバ関数によって調べることが出来る。
ソース
check.cpp
#include <gtkmm.h>
class MainWin : public Gtk::Window
{
Gtk::CheckButton m_chk;
Gtk::ToggleButton m_tgl;
Gtk::Button m_bt;
Gtk::VBox m_vbox;
public:
MainWin();
private:
void on_bt_clicked();
};
MainWin::MainWin()
:m_chk( "チェック" ),
m_tgl( "トグル" ),
m_bt( "状態表示" )
{
// シグナルとスロットをコネクト
m_bt.signal_clicked().connect(
sigc::mem_fun( *this, &MainWin::on_bt_clicked ) );
m_vbox.pack_start( m_chk );
m_vbox.pack_start( m_tgl );
m_vbox.pack_start( m_bt );
add( m_vbox );
show_all_children();
}
// スロット関数
void MainWin::on_bt_clicked()
{
Glib::ustring msg;
if( m_chk.get_active() ) msg += "チェック\n";
if( m_tgl.get_active() ) msg += "トグル";
Gtk::MessageDialog diag( *this, msg );
diag.run();
}
int main( int argc, char *argv[] )
{
Gtk::Main kit( argc, argv );
MainWin mainwin;
Gtk::Main::run( mainwin );
return 0;
}
コンパイル
必要なコンパイルオプションは pkg-config を使って取得する。g++ check.cpp -o check `pkg-config gtkmm-2.4 --cflags --libs`
結果
状態表示ボタンを押すと現在のチェックボタンやトグルボタンの状態が表示される