ラジオボタン
概要
Gtk::RadioButtonによってラジオボタンを作成する。代表のラジオボタンのget_group()メソッドによってデフォルトのGtk::RadioButton::Groupを取得し、その グループに他のラジオボタンを登録していく。なおグループ登録の部分で
m_radio2.set_group( m_radio1.get_group() );
のように手続きを省略するとコンパイルが通らないので注意すること。
ソース
radio.cpp
#include <gtkmm.h>
class MainWin : public Gtk::Window
{
Gtk::RadioButton m_radio1, m_radio2, m_radio3;
Gtk::VBox m_vbox;
public:
MainWin();
virtual ~MainWin();
};
MainWin::MainWin()
:m_radio1( "radio1" ), m_radio2( "radio2" ), m_radio3( "radio3" )
{
Gtk::RadioButton::Group gr = m_radio1.get_group();
m_radio2.set_group( gr );
m_radio3.set_group( gr );
m_vbox.pack_start( m_radio1 );
m_vbox.pack_start( m_radio2 );
m_vbox.pack_start( m_radio3 );
add( m_vbox );
show_all_children();
}
MainWin::~MainWin()
{
std::string msg;
if( m_radio1.get_active() ) msg = "radio1";
else if( m_radio2.get_active() ) msg = "radio3";
else if( m_radio3.get_active() ) msg = "radio3";
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++ radio.cpp -o radio `pkg-config gtkmm-2.4 --cflags --libs`
結果