Frage

Ich schreibe eine App für gnome, die Plug-in unterstützen. Jedes Plugin wird eine Glade-Datei und ein Python-Skript enthalten.

Wie kann ich die Lichtung Datei aus dem Plugin in der Hauptoberfläche einbetten.

Plugin Glade-Dateien sollten eine Seite / Tab enthalten und wird in ein Notebook in der Hauptoberfläche eingebettet werden.

Bitte Hilfe.

War es hilfreich?

Lösung

Der beste Weg wäre, um die Plugins die Glade-Datei selbst zu machen laden und eine Funktion haben, dass das Hauptprogramm aufrufen können die Seite / Tab zu erhalten. Auf diese Weise das Plugin alle Signale anschließen kann es muss. gtk.Builder Dokumentation .

Andere Tipps

Sie haben zwei Möglichkeiten:

  1. Sie können die beiden Glade-Dateien in zwei verschiedene GtkBuilder Objekte öffnen, und dann manuell den Inhalt der Plugin-Datei in das Hauptfenster hinzufügen. Sie könnten den Inhalt des Plugins in eine Box namens pluginbox setzen und das Notebook Ihrer Haupt-App würde mynotebook genannt werden. In Code soll wie folgt aussehen:

    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. Sie können verschiedene Dateien in einen Builder hinzufügen. Sie sollten sicher sein, dass es keinen Konflikt mit den Namen in den beiden Dateien:

    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)
    
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top