Gtk::ScrolledWindowによるスクロール処理
概要
Gtk::ScrolledWindowを使うと簡単にスクロール処理を行うことが出来る。Gtk::ScrolledWindowはGtk::ContainerのサブクラスであるのでGtk::Container::add()を使って ウィジットを内部に貼り付けることが出来る。set_policy()に Gtk::POLICY_AUTOMATICを 指定すると内部のウィジットのサイズに応じて自動でスクロールバーを表示する。
なお、ボタン追加の所で出てくるGtk::manage()に関してはこちらを 参照すること。
ソース
scroll.cpp
#include <gtkmm.h>
class MainWin : public Gtk::Window
{
Gtk::ScrolledWindow m_scr;
Gtk::VBox m_vbox;
public:
MainWin();
};
MainWin::MainWin()
{
// ボタン追加
for( int i = 0; i < 10; ++i ){
m_vbox.pack_start( *Gtk::manage( new Gtk::Button( "test" ) ) );
}
// スクロールバー自動表示設定
m_scr.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC );
m_scr.add( m_vbox );
add( m_scr );
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++ scroll.cpp -o scroll `pkg-config gtkmm-2.4 --cflags --libs`
結果