=?GB2312?B?UmU6ILTwuLQ6IEEgcXVlc3Rpb24gYWJvdXQgR1RLIFNjYWxl?=



Hi,

No, you should not use closed loop for GTK application when you expect
responses.
Use gtk timeout mechanism instead of the dead while loop with sleep.

Try that, I am quite sure that would help.

Yours faithfully,

Alvis Koon

On 16/04/2008, Ke Jin <jinkea gmail com> wrote:
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:cjbackhouse gmail com]
 发送时间: 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]