Como adiciono um bloco de anotações a uma caixa em um VBox?

7

Eu criei uma caixa vazia no Glade para adicionar um bloco de anotações. A razão pela qual não estou adicionando o Notebook atual no Glade é porque ouço que você não pode adicionar páginas a um bloco de anotações feito no Glade.

Então, no Glade, criei uma Box em um slot vazio em um VBox. O código que estou executando é:

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

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

Nada acontece após a execução, exceto esses avisos que, acredito, ocorrerão de qualquer maneira:

/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)
    
por njallam 24.06.2012 / 08:31

1 resposta

10

Veja um exemplo que tem contexto

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()

Funciona com este arquivo glade

Ele fornece essa funcionalidade:

IssotambémfuncionasevocêestiverusandoseupróprioNotebook.Observeque,quandovocêexecutaoexemplo,vêumapequenaalteraçãonageometriadajanela(oobjetoqueestásendoadicionado),maselanãoaparecepararenderizarporqueaindanãotemguias.

fromgi.repositoryimportGtkclassHandler:defonDeleteWindow(self,*args):Gtk.main_quit(*args)defaddNotebookClick(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()
    
por RobotHumans 24.06.2012 / 12:17