Re: Why doesn't my label show up in the window



Hi,

sleep() block the mainloop or gtk_main() which GTK+'s most widgets are
updated in queue, also remember that gtk_main() (usually) runs in main
thread. You may got inconsistency which the label sometimes shown up
or not because most of time the update (in your case: the label) are
still not drawn when you call sleep() and block the main thread. Then
your program wake up from sleep() and complete any pending event: draw
the label, but unfortunately you will not noticed that the label has
been shown up because it destroy it's parent widget and just return.

And obviously, gtk_events_pending() are not intended to work with your case.

That's ugly to call sleep() between gtk_main(), because you will mess
with GUI interaction (unresponsive) , widget update, event signal's
etc. So avoid using it.

I have read up on the use of timeouts as suggested by Ardhan Madras and while
it appears to be an approach that could be made to work in my situation, I don't
see why it should be necessary to work off of  a timer when I'm just counting
records.
So I may have misunderstood your question, what I got is: you tried to
create another window and destroy it after a few of seconds. that's
it? Could you tell me "what record you are trying to count?".

And what I was trying to suggest you is not about using a timer. It's
about how GTK+ works.

Regards.


On Sun, Aug 26, 2012 at 12:31 PM, Frank Cox <theatre melvilletheatre com> wrote:
On Sat, 25 Aug 2012 16:18:20 -0600
Frank Cox wrote:

I have modified my little test program so it will provide a visual cue for each
pending event.  I have attached the modification.

I get three pending events every time I press the OK button.  The subwindow
always appears.  The label sometimes appears on the first button press, but
never on any subsequent button press.  But in all cases, there are three
pending events, never more and never less, regardless of whether the label
appears or not.

What is going on here?

I have also been experimenting with a progress bar and have a similar
situation.  It only updates the bar length to 100% after the entire job is over,
interim updates never show up and the bar stays at zero, but interestingly
enough text superimposed on the bar with gtk_progress_bar_set_text() shows up
as it should be.  So I get the text updated but not the bar length.  Which
bothers me because, again, I would think I should get either both the bar
length and the text updated, or neither.

I have read up on the use of timeouts as suggested by Ardhan Madras and while
it appears to be an approach that could be made to work in my situation, I don't
see why it should be necessary to work off of  a timer when I'm just counting
records.

--
MELVILLE THEATRE ~ Real D 3D Digital Cinema ~ www.melvilletheatre.com
www.creekfm.com - FIFTY THOUSAND WATTS of POW WOW POWER!

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



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