LINUX.ORG.RU
Ответ на: комментарий от grob

Спасибо. А как заставить работать этот код?

#!/usr/bin/env python

import gtk import gtk.glade

class Hello (gtk.Window): def __init__(self): xml = gtk.glade.XML("hello.glade") xml.signal_autoconnect(self) self = xml.get_widget("window") pass

window = Hello() window.connect("delete_event", gtk.main_quit) window.show_all() gtk.main()

Deleted
()
Ответ на: комментарий от Deleted

Спасибо.
А как заставить работать этот код?

#!/usr/bin/env python

import gtk
import gtk.glade

class Hello (gtk.Window):
    def __init__(self):
        xml = gtk.glade.XML("hello.glade")
        xml.signal_autoconnect(self)
        self = xml.get_widget("window")
    pass

window = Hello()
window.connect("delete_event", gtk.main_quit)
window.show_all()
gtk.main()

Deleted
()
Ответ на: комментарий от Deleted

Вот это немного неправильно, вернее совсем не в тему:

self = xml.get_widget("window")

Если нужно сделать подкласс gtk.Window, содержимое которого создаётся в glade, можно из glade просто забирать содержимое с помощью xml.get_widget и запаковывать в окно.

welkam ★★
()
Ответ на: комментарий от welkam

Т.е., так?

#!/usr/bin/env python

import gtk
import gtk.glade

class Hello (gtk.Window):
    def __init__(self):
        xml = gtk.glade.XML("hello.glade")
        xml.signal_autoconnect(self)
        self.add(xml.get_widget("vbox1"))
    pass

window = Hello()
window.connect("delete_event", gtk.main_quit)
window.show_all()
gtk.main()

но тогда получается, что создается неиспользуемый экземпляр gtk.Window (который можно получить по xml.get_widget("window")), мелочть, а как-то некрасиво; к тому же настройки этого окна в glade (например, ширина границ) не используются...

Deleted
()
Ответ на: комментарий от Deleted

Ну да, так все и делают. Хотя если нет необходимости иметь свой дочерний класс Window, то можно и проще гораздо.

Если использовать gtk.glade.XML("hello.glade","vbox"), лишнее окно не будет создаваться. А по поводу неиспользуемых свойств для Window, ну что уж поделаешь, нет возможности привязывать их к существующему объекту.

welkam ★★
()
Ответ на: комментарий от Deleted

имхо, обработчики событий проще цеплять через gtk.glade.XML.signal_autoconnect

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.