Perhaps it takes 2 iterations of the main loop for the vscale to update.
What happens if you try
while(gtk_events_pending()) gtk_main_iteration();
instead?

Ke Jin wrote:
> Dear All,
>   I have a VScale in my interface and I created button named "Play" that
> once the button is clicked, the scale will move automatically. 
>
> Below is the function connected to the button. And it performed strangely.
> The scale was not updated every iteration of the loop, which means the value
> of the scale changed from 0 to 2 then to 4 then 6....and jumped over
> 1,3,5...
>
> Does anyone have any idea why this happened?
>
> void playClick(GtkWidget *widget, VScale *slider)
> {
>     double interval = 1;
>     double currentTime =  gtk_range_get_value((GtkRange*)(slider));
>     
>    
>     while(currentTime<=20)
>     {
>         currentTime += interval; 
>         usleep(1000000);
>         printf("current Time: %f\n",currentTime);
>         gtk_range_set_value((GtkRange*)(gtkE->slider),currentTime);
>         gtk_main_iteration();
>     }
> } 
>
> Many Thanks,
> Ke
>
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>   

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to