プログレスパーとタイムアウト
概要
プログレスパーとタイムアウトを組み合わせてラーメンタイマーを作るプログレスバーの値は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`
結果