タブにアイコンを埋め込む
概要
タブにアイコンを埋め込む。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`
結果
