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