Comment réutiliser un arbre widget à partir d'un fichier avec Glade GtkBuilder?
-
08-10-2019 - |
Question
je veux remplir un gtk.notebook sur la volée. chaque fois qu'un utilisateur ouvre un fichier, un nouveau onglet portable est généré. assez simple. mon problème est que j'utilise Glade pour construire l'interface utilisateur et l'onglet portable devrait avoir un arbre widget enfant (scrolledwindow-> viewport-> alignment-> frame). dans mon Glade fichier, j'ai un ordinateur portable onglet modèle, que je veux utiliser plusieurs fois, de sorte que je n'ai pas le code de l'arbre tout en gtk plaine. avec libglade, vous pouvez réutiliser un arbre widget comme expliqué dans la FAQ pygtk ici:
La solution Do cette façon avec GtkBuilder: modifier J'a d'abord été mal, il semble que GtkBuilder fait d'instancier des objets quand il ajoute. Ainsi, la manière idéale de le faire serait d'ajouter le widget manuellement via une chaîne Espérons que cela fonctionne! builder = gtk.Builder()
builder.add_from_file("GUI.xml")
builder.connect_signals(self)
self.window1 = builder.get_object("window1")
self.window1.show()
builder.add_from_string("""
<interface>
<object class="GtkWindow" id="window1">
<child>
<object class="GtkComboBox" id="combobox1">
<property name="model">liststore1</property>
</object>
</child>
</object>
</interface>""")
self.window1 = builder.get_object("window1")