内容

更新日: 2006/8/2
バージョン: gtkmm24

■ 概要
■ ソース
■ コンパイル
■ 結果

TOP

タブにアイコンを埋め込む

概要

タブにアイコンを埋め込む。

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`

結果