内容

更新日: 2005/8/4
バージョン: gtkmm24

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

TOP

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`

結果