Utilizzo di file Glade multipla: GtkBuiler
Domanda
Sto scrivendo un app per gnome che sosterrà i plugin. Ogni plugin conterrà un file Glade e uno script python.
Come faccio a incorporare il file glade dal plugin nell'interfaccia principale.
I file Glade plugin dovrebbe contenere una pagina / scheda e saranno embeded in un notebook nell'interfaccia principale.
Si prega di aiuto.
Soluzione
Il modo migliore sarebbe quello di rendere i plugin caricare stessi depositare la radura e hanno una funzione che il programma principale può chiamare per ottenere la pagina / scheda. In questo modo il plugin può collegare tutti i segnali è necessario. gtk.Builder documentazione .
Altri suggerimenti
Sono disponibili due opzioni:
-
È possibile aprire i due file Glade in due diversi oggetti GtkBuilder, e quindi aggiungere manualmente il contenuto del file plugin nella finestra principale. Si potrebbe mettere il contenuto del plugin in una scatola di nome
pluginbox
e il notebook della vostra applicazione principale sarebbe chiamatomynotebook
. Nel codice dovrebbe essere simile a questo:main_builder = gtk.Builder() main_builder.add_from_file('main.glade') plugin_builder = gtk.Builder() plugin_builder.add_from_file('plugin.glade') mynotebook = main_builder.get_object('mynotebook') pluginbox = plugin_builder.get_object('pluginbox') mynotebook.append_page(pluginbox)
-
È possibile aggiungere file diversi per un costruttore. Si dovrebbe essere sicuri che non v'è alcun conflitto con i nomi dei due file:
main_builder = gtk.Builder() main_builder.add_from_file('main.glade') main_builder.add_from_file('plugin.glade') mynotebook = main_builder.get_object('mynotebook') pluginbox = main_builder.get_object('pluginbox') mynotebook.append_page(pluginbox)