プログレスバー2014年9月7日 | |
![]() ファイル内容プログレスバーを使ってみます。プログレスバーは次のように作ります。 progress = gtk_progress_bar_new(); gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress), "0%"); gtk_progress_bar_set_text() で初期の文字列を "0%" に設定しています。 プログレスバーを動かすために、タイマーを使います。 timer = g_timeout_add(500., timerEvent, progress); 500 ms ごとに timer() を呼び出し、引数に progress を渡します。timerEvent() は次のようになっています。
gboolean timerEvent(gpointer progress)
{
static int fraction = 0;
char str[5];
fraction += 10;
if(fraction > 100) fraction = 0;
sprintf(str, "%d%%", fraction);
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress), str);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), fraction/100.);
return TRUE;
}
fraction がプログレスバーのパーセンテージを表わします。gtk_progress_bar_set_text() でプログレスバーの文字列を更新し、gtk_progress_bar_set_fraction() でプログレスバーの進み具合を更新します。返り値を TRUE にしておけば、timerEvent() は再びタイマーから呼び出されます。 不要になったタイマーは gtk_timeout_remove() で取り除きます。 gtk_timeout_remove(timer); | |
| PENGUINITIS | |