LINUX.ORG.RU

Наследование от Gtk.Bin

 , ,


0

1

Привет.

Захотел создать кастомный виджет содержащий другие виджеты. При этом не хочу наследоваться от Gtk.Grid или Gtk.Box поскольку не желаю иметь возможность изменять новый виджет. Решил поэкспериментировать с Gtk.Bin

from gi.repository import Gtk


class CustomBin(Gtk.Bin):
    __gtype_name__ = "CustomBin"

    def __init__(self):
        super(self.__class__, self).__init__()
        self.__child = Gtk.Button.new_with_label("FFFFFFUUU!!!1111one")
        self.__child.show()
        super(self.__class__, self).add(self.__child)

    def add(self, widget):
        pass

    def get_child(self):
        return self.__child


def main():
    win = Gtk.Window(Gtk.WindowType.TOPLEVEL)
    win.set_title("CustomBin")
    win.connect("destroy", lambda win: Gtk.main_quit())
    cbin = CustomBin()
    win.add(cbin)
    win.show_all()
    return Gtk.main()


if __name__ == '__main__':
    main()
Все запускается но кнопки не видно. ЧЯДНТ?

★★★★★

Ответ на: комментарий от fat_angel

А обычный бин сделан абстрактным GObject классом и не может быть инстанцирован.

LOL!! тыг не проста же он сделан абстракным классом!

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

Капитан? Спасибо я в курсе. А теперь слабо рассказать как оно должно правильно выглядеть?

fat_angel ★★★★★
() автор топика

Посмотри как в коде библиотеки PyGtk бородатые мужики правильно наследуют класс Gtk.Bin. Так и делай.

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