📄 ex22_2.c
字号:
/*filename:ex22_2.c*/
#include <gtk/gtk.h>
int count;
int timeron;
GtkWidget *progress;
gint delete_handle(GtkWidget *widget,gpointer gdata)
{
g_print("application quitting----\n");
gtk_main_quit();
return FALSE;
}
void updateprogress()
{
if (!timeron)
return ;
count++;
if (count>100)
{
gtk_main_quit();
return ;
}
gtk_progress_bar_update(GTK_PROGRESS_BAR(progress),(float)(count)/100);
return ;
}
void OnReset(GtkWidget *widget, gpointer *data)
{
count=0;
gtk_progress_bar_update(GTK_PROGRESS_BAR(progress),0.0);
return ;
}
void OnPause(GtkWidget *widget, gpointer *data)
{
if (timeron==1)
timeron=0;
else
timeron=1;
return ;
}
void OnClose(GtkWidget *widget, gpointer *data)
{
count=100;
gtk_progress_bar_update(GTK_PROGRESS_BAR(progress),1.0);
gtk_main_quit();
return ;
}
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *box1,*box2;
gint timer;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"Test Progress Bar");
gtk_signal_connect(GTK_OBJECT(window),"delete_event",
GTK_SIGNAL_FUNC(delete_handle),NULL);
box1 = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(window),box1);
progress=gtk_progress_bar_new ();
gtk_box_pack_start(GTK_BOX(box1),GTK_WIDGET( progress), TRUE, TRUE, 0);
count=0;
timeron=1;
gtk_progress_bar_update(GTK_PROGRESS_BAR(progress),0.5);
gtk_widget_show(progress);
timer=gtk_timeout_add(100,(GtkFunction)updateprogress,NULL);
box2=gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(box1),box2,TRUE,TRUE,0);
button=gtk_button_new_with_label("Reset");
gtk_box_pack_start(GTK_BOX(box2),button,TRUE,TRUE,0);
gtk_widget_show(button);
gtk_signal_connect(GTK_OBJECT(button),"clicked",
GTK_SIGNAL_FUNC(OnReset),NULL);
button=gtk_button_new_with_label("Pause");
gtk_box_pack_start(GTK_BOX(box2),button,TRUE,TRUE,0);
gtk_widget_show(button);
gtk_signal_connect(GTK_OBJECT(button),"clicked",
GTK_SIGNAL_FUNC(OnPause),NULL);
button=gtk_button_new_with_label("Close");
gtk_box_pack_start(GTK_BOX(box2),button,TRUE,TRUE,0);
gtk_widget_show(button);
gtk_signal_connect(GTK_OBJECT(button),"clicked",
GTK_SIGNAL_FUNC(OnClose),NULL);
gtk_widget_show(box2);
gtk_widget_show(box1);
gtk_widget_show(window);
gtk_main();
gtk_timeout_remove(timer);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -