⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sub1.c

📁 这是基于linux平台下关于多进程进度条控制的程序
💻 C
字号:
#include<gtk/gtk.h>int count;int j=0;GtkWidget *scl[3];GtkWidget *button1;GtkWidget *lab;GdkColor color;gboolean flag=TRUE;void pauce_continue(GtkWidget *w,GdkEvent *e,gpointer data){  flag=!flag;  if(!flag)   {       gtk_label_set_text(GTK_LABEL(lab),"sub1 has ben paused!");     gtk_button_set_label(GTK_BUTTON(button1),"run");      }  else{      gtk_label_set_text(GTK_LABEL(lab),"sub1 is running now!");      gtk_button_set_label(GTK_BUTTON(button1),"pause");      }   }gboolean updateprogress(){      if(flag)   {    count+=2;   if(count>100)    {count=0;     j++;     if(j>=3)       {         gtk_label_set_text(GTK_LABEL(lab),"sub1 has finished running!");        return FALSE;               }     }    gtk_progress_bar_update(GTK_PROGRESS_BAR(scl[j]),(float)(count)/100.0);      }  return TRUE; }gint delete_event( GtkWidget *widget,                   GdkEvent  *event,                   gpointer   data ){   printf("sub1 quit!\n");    gtk_main_quit ();    return FALSE;}int main( int   argc, char *argv[] ){      GtkWidget *window;    GtkWidget *button;    GtkWidget *table;    gint i,*x,*y;    gint timer;    count=0;    gtk_init (&argc, &argv);    color.red = 0;    color.blue = 65535;    color.green = 0;            window = gtk_window_new (GTK_WINDOW_TOPLEVEL);        gtk_window_set_title (GTK_WINDOW (window), "SUB1");    g_signal_connect (G_OBJECT (window), "delete_event",G_CALLBACK (delete_event), NULL);       timer=gtk_timeout_add(100,(GtkFunction)updateprogress,NULL);    gtk_container_set_border_width (GTK_CONTAINER (window), 20);        table = gtk_table_new (10, 2, TRUE);    gtk_container_add (GTK_CONTAINER (window), table);    button1=gtk_button_new_with_label("pause");    lab=gtk_label_new("sub1 is running now!");    button = gtk_button_new_with_label ("Quit");    g_signal_connect(G_OBJECT(button1),"clicked",G_CALLBACK(pauce_continue),NULL);     g_signal_connect (G_OBJECT (button), "clicked",G_CALLBACK (delete_event), NULL);    gtk_widget_modify_bg (GTK_WINDOW(window), GTK_STATE_NORMAL, &color);       gtk_window_resize(GTK_WINDOW(window),300,240);         if(argc==2)     {    if(strcmp(argv[1],"1")==0)     gtk_window_move(GTK_WINDOW(window),20,20);    else     if(strcmp(argv[1],"2")==0)    gtk_window_move(GTK_WINDOW(window),340,20);    else     gtk_window_move(GTK_WINDOW(window),680,20);           }                                     for(i=0;i<3;i++)    {          scl[i]=gtk_progress_bar_new();      gtk_progress_bar_update(GTK_PROGRESS_BAR(scl[i]),0);      gtk_table_attach_defaults(GTK_TABLE(table),scl[i],0,2,i+2,i+3);      gtk_widget_show(scl[i]);           }    gtk_table_attach_defaults(GTK_TABLE(table),lab,0,2,0,2);    gtk_table_attach_defaults(GTK_TABLE(table),button1,0,1,7,9);    gtk_table_attach_defaults(GTK_TABLE(table),button,1,2,7,9);    gtk_widget_show (button1);    gtk_widget_show(button);    gtk_widget_show(lab);    gtk_widget_show (table);    gtk_widget_show (window);    gtk_main ();    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -