Как добавить блокнот в ящик в VBox?

7

Я создал пустую коробку в Glade, чтобы добавить ноутбук. Причина, по которой я не добавляю фактический ноутбук в Glade, заключается в том, что я слышу, что вы не можете добавлять страницы в ноутбук, сделанный в Glade.

Итак, в Glade я создал ящик в пустом слоте в VBox. Код, который я запускаю:

self.box = self.builder.get_object("box")

self.subjects = Gtk.Notebook()
self.box.add(self.subjects)

Ничего не происходит при запуске, за исключением тех предупреждений, которые, как я считаю, все равно произойдут:

/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py:391: Warning: g_object_set_property: construct property "type" for object 'Window' can't be set after construction
Gtk.Window.__init__(self, type=type, **kwds)
/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py:391: Warning: g_object_set_property: construct property "type" for object 'NotetakerWindow' can't be set after construction
Gtk.Window.__init__(self, type=type, **kwds)
    
задан njallam 24.06.2012 в 06:31
источник

1 ответ

10

Вот пример, имеющий контекст

from gi.repository import Gtk

class Handler:
    def onDeleteWindow(self, *args):
        Gtk.main_quit(*args)

    def addNotebookClick(self, *args):
        vbox = builder.get_object("attachtome")
        mynote = builder.get_object("notebook1")
        temp = Gtk.Box()
        mynote.reparent(temp)
        vbox.pack_start(temp, expand=False, fill=False, padding=0)
        window.show_all()

builder = Gtk.Builder()
builder.add_from_file("howtoaskaprogrammingquestion.glade")
builder.connect_signals(Handler())
window = builder.get_object("window1")
window.show_all()

Gtk.main()

Он работает с этим файлом поляны

Он предоставляет следующие функции:

Это также работает, если вы используете свой собственный ноутбук. Обратите внимание, что при запуске примера вы видите небольшое изменение геометрии окна (добавляемого объекта), но оно не отображается, поскольку оно еще не имеет вкладок.

from gi.repository import Gtk
class Handler:
    def onDeleteWindow(self, *args):
        Gtk.main_quit(*args)

    def addNotebookClick(self, *args):
        vbox = builder.get_object("attachtome")
        mynote = Gtk.Notebook()
        #mynote = builder.get_object("notebook1")
        #temp = Gtk.Box()
        #mynote.reparent(temp)
        vbox.pack_start(mynote, expand=False, fill=False, padding=0)
        window.show_all()

builder = Gtk.Builder()
builder.add_from_file("howtoaskaprogrammingquestion.glade")
builder.connect_signals(Handler())
window = builder.get_object("window1")
window.show_all()

Gtk.main()
    
ответ дан RobotHumans 24.06.2012 в 10:17
источник