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.