Gtk3 substitui o widget filho por outro widget

Estou procurando uma maneira de remover um widget de seu pai (o que quer que seja - um VBox, um Grid, ...) e adicionar um widget substituto em seu lugar.

eu encontreiesta resposta, mas não consigo fazê-lo funcionar com o Gtk3.

Aqui está o que eu tentei:

from gi.repository import Gtk

def replace_widget(old, new):
    parent= old.get_parent()

    props= {}
    for key in Gtk.ContainerClass.list_child_properties(type(parent)):
        props[key.name]= parent.child_get_property(old, key.name)

    parent.remove(old)
    parent.add_with_properties(new, **props)

Mas a ligação paraGtk.ContainerClass.list_child_properties levanta

TypeError: argument self: Expected a Gtk.ContainerClass, but got gi.repository.Gtk.GObjectMeta

Também não aceita uma instância de um widget de contêiner. Pela minha vida, não consigo descobrir qual parâmetro devo passar.

P.S .: Eu sei que poderia adicionar outro widget entre o contêiner e o widget filho, mas prefiro não.

ATUALIZAR: Eu acho que não estava claro o suficiente: o widget substituto deveria estar no mesmo lugar que o widget original, com as mesmas propriedades de compactação.

questionAnswers(4)

yourAnswerToTheQuestion