Seite 1 von 1

Glade Tutorial/Erklärung gesucht

Verfasst: Freitag 27. November 2009, 19:40
von cos4
Moin

also ein Hauptfenster mit Glade erstellen und aus einem Pythonprogramm heraus aufrufen klappt soweit(mit GtkBuilder). Nun hat man aber oft ja keinen statischen Inhalt im Hauptfenster. Der Inhalt zw. Menu und Statusleiste ändert sich ja je nach dem was man z.B. über die Menuleiste anwählt.

Wie kann ich jetzt für diesen Bereich ein template mit Glade erstellen und das laden wenn ein Button geklickt wird? Ich will also letztlich verschiedene glade Dateien für verschiedene Teile des Programms haben, die ich dann laden kann.

Wie realisiere ich das am besten?
Eigentlich ist es ja ein Standardproblem aber die meisten Tutorials beschränken sich auf die Erklärung eines statischen Fensters und ich weiß nicht wirklich, wie das heißt, was ich suche(was die Benutzung von Google und der Sufu erschwert).

ps:Hoffe ist soweit einigermaßen verständlich.

Verfasst: Sonntag 29. November 2009, 10:57
von Trundle
Man kann Widgets von einem Container in einen anderen verschieben (mit der `reparent()`-Methode). Du könntest also verschiedene Glade-Dateien haben mit einem Fenster und darin dann deinen jeweiligen Inhalt und dann eben das Kind holen (`get_child()`) und umplatzieren.

Verfasst: Sonntag 29. November 2009, 15:02
von cos4
Danke für die Antwort. Das klingt ja nun recht umständlich&unsauber, gibts noch andere Lösungen für das Problem(auch wenn die vll mehr handarbeit erfordern)?
Dürfte doch eigentlich ein alltägliches Problem sein oder?

Verfasst: Sonntag 29. November 2009, 15:25
von Andyh
Hallo

Es gibt bei gtk eine Funktion mit der man widgets(glaube nur Menüs) aus einem string(xml, also einem teil einer Gladedatei) laden kann.

Beim Inhalt von Fenster(nicht das Menü):
-in Galde einen Container(hbox,, vbox, ...) anlegen, mit z.B. dem Namen "inhalt", der Container bleibt dann leer

-im Programm erstelle ich die Inhalte wider in einem Container(z.B. eine gtk.VBox mit 3label's und 2images)

-dann mit dem GtkBuilder den Container holen
-dann in den Container "inhalt" den anderen packen
-beim Wechsel des Inhaltes muss ich nur den Container "inhalt" leeren und einen anderen wieder reinpacken.


Ansonsten gäbe es ja noch ein Notebook, geht in vielen fälle sogar besser.

Gruß
Andyh

Verfasst: Montag 30. November 2009, 12:13
von start_with_python
Hey,

dein Problem lässt sich lösen: Nutze einfach ein Notebook!
Und um dann die Reiter weg zu bekommen schaltest du diese einfach in den Notebook (Notizblock)-Eigenschaften aus (Allgemein, Reiter anzeigen)

Und schon kannst du ruckzuck mit einem Knopfdruck oder Befehel zwischen den einzelnen Reitern hin und her schalten.

Grüße
Sowbug

Verfasst: Montag 30. November 2009, 12:33
von cos4
Ah danke das klingt cool. Werds mal so versuchen.

Verfasst: Montag 30. November 2009, 21:29
von cos4
Hab jetzt mal ein notebook reingepackt kriege aber eine Fehlermeldung, unter der ich bei google nicht viel finde:
Gtk:ERROR:gtknotebook.c:1140:gtk_notebook_buildable_add_child: assertion failed: (page != NULL)
Aborted

Verfasst: Mittwoch 2. Dezember 2009, 11:21
von cos4
Niemand eine Idee oder soll ich lieber einen neuen thread aufmachen?

Verfasst: Mittwoch 2. Dezember 2009, 11:30
von ms4py
Vermutlich hast du ein Notebook ohne Seite erstellt. Mehr lässt sich aber ohne Code und genauerer Beschreibung nicht sagen.

Verfasst: Donnerstag 3. Dezember 2009, 17:28
von cos4
ah die Seiten des notebooks waren nicht selectable. Etwas seltsam das als defaultwert zu nehmen bei glade aber ok.