タブにアイコンを埋め込む
概要
タブにアイコンを埋め込む。HBoxを派生させて Gtk::Image と Gtk::Label を pack したタブを 作成し、Gtk::Notebook::append_page() を使ってタブをセットする。 ストックアイコンを Gtk::Image にセットするには Gtk::Image::set()を使う。
ソース
notebook3.cpp
#include <gtkmm.h>
// アイコンとラベルを埋め込んだHBox
class IconLabel : public Gtk::HBox
{
Gtk::Label m_label;
Gtk::Image m_img;
public:
IconLabel::IconLabel( const Glib::ustring& label )
: m_label( label )
{
// アイコンのセット
m_img.set( Gtk::Stock::YES, Gtk::ICON_SIZE_MENU );
pack_start( m_img );
pack_start( m_label );
show_all_children();
}
};
class MainWin : public Gtk::Window
{
Gtk::Label m_label1, m_label2;
IconLabel m_tab1, m_tab2;
Gtk::Notebook m_notebook;
public:
MainWin();
};
MainWin::MainWin()
: m_label1( "label1" ),
m_label2( "label2" ),
m_tab1( "page1" ),
m_tab2( "page2" )
{
resize( 400, 300 );
m_notebook.append_page( m_label1, m_tab1 );
m_notebook.append_page( m_label2, m_tab2 );
add( m_notebook );
show_all_children();
}
int main( int argc, char *argv[] )
{
Gtk::Main kit( argc, argv );
MainWin mainwin;
Gtk::Main::run( mainwin );
return 0;
}
コンパイル
必要なコンパイルオプションは pkg-config を使って取得する。g++ notebook3.cpp -o notebook3 `pkg-config gtkmm-2.4 --cflags --libs`
結果