内容

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

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

TOP

プログレスパーとタイムアウト

概要

プログレスパーとタイムアウトを組み合わせてラーメンタイマーを作る

プログレスバーの値はset_fraction()でセットできる。範囲は0から1.0である。

タイムアウトはGlib::signal_timeout()シグナルにスロットをコネクトすることにより 指定した時間(ミリ秒)ごとにスロットが呼び出される。

ソース

progbar.cpp

#include <gtkmm.h>

class MainWin : public Gtk::Window
{
    Gtk::ProgressBar m_progbar;
    double m_val;

public:
    MainWin();

private:
    bool on_timeout();
};


MainWin::MainWin()
    : m_val( 0 )
{
    add( m_progbar );
    show_all_children();

    // 1000 msecごとに on_timeout()を呼び出す
    Glib::signal_timeout().connect( sigc::mem_fun( *this, &MainWin::on_timeout ), 1000 );
}


bool MainWin::on_timeout()
{
    m_val += 0.05;
    m_progbar.set_fraction( m_val );
}


int main( int argc, char *argv[] )
{
    Gtk::Main kit( argc, argv );
    MainWin mainwin;
    Gtk::Main::run( mainwin );

    return 0;
}

コンパイル

必要なコンパイルオプションは pkg-config を使って取得する。

g++ progbar.cpp -o progbar `pkg-config gtkmm-2.4 --cflags --libs`

結果