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.

È stato utile?

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:

  1. È 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 chiamato mynotebook. 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)
    
  2. È 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)
    
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top