GTK+: hbox (die sich innerhalb einer vbox befindet!) entfernen?



  • Guten Abend,

    Kurz vorweg: nutze das phpgtk, von der Theorie etc. sollte es da aber keine unterschiede geben und die Funktionsnamen dürften wohl auch ähnlich oder gleich sein!

    Zum Problem:
    ich habe ein fenster mit einer vbox, in der vbox habe ich eine hbox.
    In dieser hbox wird mein Content dargestellt, da sich nur dieser ändert, reicht es diese auszutauschen (ähnlich zu frames bei html) – wenn ich diese aber nun per
    window>remove(window->remove(hbox1);
    (der Code ist richtig, mit der vbox funktioniert es!)
    entfernen will, erhalte ich folgende Fehlermeldung:

    (test2.php:3800): Gtk-CRITICAL **: gtk_container_remove: assertion `GTK_IS_TOOLB
    AR (container) || widget->parent == GTK_WIDGET (container)' failed
    

    Durch einiges herumspielen an meinem Code habe ich eine Fehlermeldung mit Verweis auf die (original) GTK FAQ erhalten:
    5.19. How do I reparent a widget?
    http://www.gtk.org/faq/#AEN636

    Ich bin mir aber nicht sicher, ob das wirklich für meine Zwecke geeignet ist/das ist was ich Suche – sowohl vom Zweck her, als auch von der Syntax: es ist wohl nur für widgets und die vbox ist ja ein container und das ist kein widget, oder? Wie auch immer, ich verstehe dieses Code Beispiel nicht und bezweifle das es dass ist, was ich suche.

    Sage auf jeden Fall schonmal vielen Dank für eure Hilfe! 🙂



  • Hallo,

    doch dieses Codebeispiel um einem Widget ein neues parent zu geben, ist für deine Zwecke geeignet. Und ja, eine VBox ist ein Widget. Es ist auch ein Container. 😉

    Ok, also warum ist das so?:
    HBox ist von Box abgeleitet, das wiederum ist von Container abgeleitet welches von Widget abgeleitet ist.

    Btw. Was genau verstehst du an dem Beispiel nicht? Es ist ja nur eine einzige Funktion, die man aufrufen muss...?

    MfG

    GPC



  • inziwhscne hat sich das agnze erleigt, wens interessiert: vbox>remove(vbox->remove(hbox); habe zuvor imemr was wie window>remove(window->remove(vbox->hbox) und so versucht^^

    was ich an der funktion nicht verstanden habe war, warum ich da n neues parent definieren soll und dnan natürlich die annahme container nicht gleich widget, naja irgendwie hab ich da alles verpeilt ^^

    danke trotzdem für deinen hilfeversuch 🙂


Anmelden zum Antworten