Gtk::Notebookのタブにツールチップを付ける
概要
Gtk::Notebookのタブにマウスを乗せたときにツールチップを表示させるGtk::Notebook::get_tab_label()を使えば良い感じがするが、Gtk::Labelは "no window" ウィジットであるためそのままtooltipsにset_tip()しても ツールチップは表示されない。従ってGtk::LabelをGtk::EventBoxに埋め込んだ ウィジットをタブのラベルとする必要がある。
ソース
notebook2#include <gtkmm.h> // ラベルを埋め込んだEventBox class TabLabel : public Gtk::EventBox { Gtk::Label m_label; public: TabLabel::TabLabel( const Glib::ustring& label ) : m_label( label ) { add( m_label ); show_all_children(); } }; class MainWin : public Gtk::Window { Gtk::Label m_label1, m_label2; TabLabel m_tab1, m_tab2; Gtk::Notebook m_notebook; Gtk::Tooltips m_tooltip; 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 ); m_tooltip.set_tip( m_tab1, "page1" ); m_tooltip.set_tip( m_tab2, "page2" ); 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++ notebook2.cpp -o notebook2 `pkg-config gtkmm-2.4 --cflags --libs`
結果
