Verwenden mehrerer Glade-Dateien: GtkBuiler
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.
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:
-
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ürdemynotebook
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)
-
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)