The problem is solved. Thanks!

But it is still a little strange that I have tried the
while(gtk_events_pending()) gtk_main_iteration(); before which didn't work.
But after I changed:
    slider = gtk_vscale_new_with_range(0,1000,0.1);
to
    GtkObject *adj1;
    adj1 = gtk_adjustment_new (0.0, 0.0, 1001, 0.1, 1.0, 1.0);
    slider = gtk_vscale_new (GTK_ADJUSTMENT (adj1));

it did work.

Any idea why?


-----邮件原件-----
发件人: Christopher Backhouse [mailto:[EMAIL PROTECTED] 
发送时间: 2008年4月16日 9:40
收件人: Ke Jin
抄送: gtk-app-devel-list@gnome.org
主题: Re: A question about GTK Scale

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