Glade Tutorial/Erklärung gesucht

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
cos4
User
Beiträge: 23
Registriert: Freitag 30. November 2007, 21:17

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.
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

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.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
cos4
User
Beiträge: 23
Registriert: Freitag 30. November 2007, 21:17

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?
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

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
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
start_with_python
User
Beiträge: 41
Registriert: Samstag 20. Juni 2009, 18:12

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
Grüße[b]
start_with_python[/b]

Lust auf [url=https://www.dropbox.com/referrals/NTE5OTQ5Mjk5]DropBox[/url]? (RefLink)
cos4
User
Beiträge: 23
Registriert: Freitag 30. November 2007, 21:17

Ah danke das klingt cool. Werds mal so versuchen.
cos4
User
Beiträge: 23
Registriert: Freitag 30. November 2007, 21:17

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
cos4
User
Beiträge: 23
Registriert: Freitag 30. November 2007, 21:17

Niemand eine Idee oder soll ich lieber einen neuen thread aufmachen?
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Vermutlich hast du ein Notebook ohne Seite erstellt. Mehr lässt sich aber ohne Code und genauerer Beschreibung nicht sagen.
cos4
User
Beiträge: 23
Registriert: Freitag 30. November 2007, 21:17

ah die Seiten des notebooks waren nicht selectable. Etwas seltsam das als defaultwert zu nehmen bei glade aber ok.
Antworten