Boxにスペーサを入れる
概要
Gtk::HBoxを使ってウィジットを並べるときに、ウィジット間に 任意サイズのスペーサを挿入する。Gtk::Widgetを派生させて空白のSpacerクラスを作りそれを挟み込む。
ソース
space.cpp
#include <gtkmm.h>
// スペーサ
class Spacer : public Gtk::Widget
{
public:
Spacer(){ set_flags( Gtk::NO_WINDOW ); }
};
class MyBox : public Gtk::Window
{
Gtk::Button m_bt1, m_bt2;
Spacer m_space;
Gtk::HBox m_hbox;
public:
MyBox();
};
MyBox::MyBox() : m_bt1( "button1" ), m_bt2( "button2" )
{
m_hbox.pack_start( m_bt1, Gtk::PACK_SHRINK );
m_space.set_size_request( 50, 0 );
m_hbox.pack_start( m_space, Gtk::PACK_SHRINK );
m_hbox.pack_start( m_bt2, Gtk::PACK_SHRINK );
add( m_hbox );
show_all_children();
resize( 300, 50 );
}
int main( int argc, char *argv[] )
{
Gtk::Main kit( argc, argv );
MyBox mb;
Gtk::Main::run( mb );
return 0;
}
コンパイル
必要なコンパイルオプションは pkg-config を使って取得する。g++ space.cpp -o space `pkg-config gtkmm-2.4 --cflags --libs`
結果