Если это ваш полный код, вы пропускаете вызов основного цикла GTK.
Вам нужно сделать две вещи (в этом порядке)
1 - подключить destroy
вашего окнасигнал функции, которая вызывает gtk.main_quit()
def on_destroy(widget, user_data=None):
# Exit the app
gtk.main_quit()
window.connect('destroy', on_destroy)
2 - Запустите основной цикл GTK:
gtk.main()
Это место, где ваше приложение эффективно запускается, и оно будет зависатьв этой строке до тех пор, пока не будет вызван gtk.main_quit()
.
В более общем смысле ... вам следует немного очистить код :) Посмотрите на "Hello World" демо из PyGTK tutorial - он в основном охватывает эти моменты и более подробно.Вы обнаружите, что следование их общей структуре вещей очень помогает.
Если вы хотите обновления по времени, посмотрите на функции timeout_add и timeout_add_seconds - в зависимости от вашей версииPyGTK / PyGobject они будут в модулях glib
или gobject
.
(Кстати, XML-файлы GTKBuilder обычно имеют расширение .ui
, даже если Глейд не знает его.)