2012-03-04 5 views
5

W GTK2 bardzo lubiłem budować gui w interpretorze (ipython lub zwykły python) "w locie" i widząc zmiany w czasie rzeczywistym, jak to :Okno nie wyświetla się w tłumaczu Pythona w GTK3 bez Gtk.main()

>>> import gtk 
>>> win = gtk.Window() 
>>> win.connect('delete-event', gtk.main_quit) 
10L 
>>> win.show_all() 

Co spowoduje wyświetlenie okna, do którego mogę dodać obiekty.

Zmieniam się na Gtk3 w części, ponieważ jest to przyszłość, a częściowo dlatego, że czasami używam Glade, która teraz jest tylko Gtk3. Czyniąc to samo z GTK3 NIE pokazuje okna:

>>> from gi.repository import Gtk 
>>> win = Gtk.Window() 
>>> win.connect('delete-event', Gtk.main_quit) 
13L 
>>> win.show_all() 

Niestety, nie ma okna po ostatniej linii. To nie pokaże do:

>>> Gtk.main() 

Próbowałem nawet:

>>> win.show_now() 

Które nic nie zrobił.

Jakieś pomysły na budowanie w czasie rzeczywistym w GTK3?

Dzięki,

Narnie

Odpowiedz

0

próbowałem do przetwarzania zdarzeń oczekujących z następującym jedną wkładką:

>>> while Gtk.events_pending(): Gtk.main_iteration() 

i wygląda mieć takie samo zachowanie. To nie jest takie wygodne, ale nadal możesz pracować w tłumaczu.

Alternatywnie, jeśli tworzysz aplikację Gtk, pdb.set_trace nadal będzie działał i umożliwi Ci odradzanie wywołań zwrotnych, jeśli tego właśnie szukasz.

+0

Świetne obejście. Dzięki! – narnie

Powiązane problemy