[erl.] gtk/gtkmm widgets in box nur teilweise gleichgroß?
[erl.] gtk/gtkmm widgets in box nur teilweise gleichgroß?
Ich habe zum Beispiel eine horizontale Box, in die ich drei Widgets packe (WidgetLinks, WidgetMitte und WidgetRechts). Nun möchte ich dass WidgetLinks und WidgetRechts gleichgroß sind und WidgetMitte nur so groß ist, wie es Platz braucht. Damit WidgetMitte nicht automatisch größer wird, gebe ich ihm den Parameter PACK_SHRINK mit. Wenn ich nun bei der HBox homogeneous=true angebe, werden die Widgets natürlich gleichgroß. Aber leider wird auch für WidgetMitte gleichviel Platz wie für WidgetLinks und WidgetRechts bereit gestellt.
Weiß jemand, wie man es hin bekommt, dass bei 3 nur die beiden aüßeren Widgets gleichgroß sind?
Gruß
Weiß jemand, wie man es hin bekommt, dass bei 3 nur die beiden aüßeren Widgets gleichgroß sind?
Gruß
Zuletzt geändert von GeoW am 13.08.2012 19:03:38, insgesamt 1-mal geändert.
Re: gtk/gtkmm widgets in box nur teilweise gleichgroß?
Das kannst du z.b. über propertys einstellen, setze für die äußeren widgets "width-request" auf 1
lasse das mittlere auf -1 (default), füge die widgets ein mit
Code: Alles auswählen
g_object_set(G_OBJECT(button1),"width-request",1,NULL);
g_object_set(G_OBJECT(button2),"width-request",1,NULL);
Code: Alles auswählen
gtk_box_pack_start (GTK_BOX(box), button1, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX(box), button, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX(box), button2, TRUE, TRUE, 0);
Re: gtk/gtkmm widgets in box nur teilweise gleichgroß?
Erst mal Danke. Damit funktioniert es, dass die beiden äußeren Widgets gleich groß sind. Der Wert 1 für width-request hat aber den Nachteil, dass man die Widgets jetzt bis auf 1 Pixel zusammen schieben kann. Ich weiß, muss ich natürlich eine Wert größer 1 nehmen. Wäre halt schön, wenn die Mindestbreite sich, wie in den anderen Modi auch, automatisch am Inhalt orientieren/einstellen würde. Wichtig war dass sie gleichgroß sind.
Re: gtk/gtkmm widgets in box nur teilweise gleichgroß?
Naja, du kannst ja den size-request vorher auslessen und dann den größeren wert für beide setzen, packst du das ganze in ein configure event callback, automatisiert sich das auch.
Re: gtk/gtkmm widgets in box nur teilweise gleichgroß?
Wenn ich size-request auslese bekomme ich immer den Standardwert -1, solange ich ihn nicht ändere.
Re: gtk/gtkmm widgets in box nur teilweise gleichgroß?
Um den tatsächlichen wert zu erhalten musst du size_request vom widget auslesen, nicht den property wert.
gtk2
gtk3
Wen du das property auf nicht -1 gesetzt hast, must du, um den Original wert zu erhalten, das property wieder auf -1 setzen und danach den wert mit gtk_widget_size_request() oder bei gtk3 eben mit gtk_widget_get_preferred_size() auslesen.
gtk2
Code: Alles auswählen
GtkRequisition requisition;
gtk_widget_size_request(GTK_WIDGET(button),&requisition);
fprintf(stdout,"%i",requisition.width);
Code: Alles auswählen
GtkRequisition minrequisition;
gtk_widget_get_preferred_size(GTK_WIDGET(button), &minrequisition, NULL );
fprintf(stdout,"%i",minrequisition.width);
Re: gtk/gtkmm widgets in box nur teilweise gleichgroß?
Super!!! Jetzt funktioniert alles so wie ich es mir vorstelle. Der Trick ist, man muss auch die richtige Funktion nehmen. Ich benutze Gtkmm 2, leider noch in der aktuellen Debianversion. Die Doku auf den gtkmm-Seiten ist ja schon für Gtkmm 3. Die einzigste Funktion mit size_request zum Abfragen, die ich fand, war get_size_request(). Naja, und die liefert natürlich nicht den gewünschten Wert. Aber mit ein wenig google fand ich heraus, dass es bei Gtkmm 2 auch die Funktion size_request() ohne get gibt.
Also nochmal Danke.
Also nochmal Danke.
Re: [erl.] gtk/gtkmm widgets in box nur teilweise gleichgroß
Sehr schön.
Zur Dokumentation von gtkmm 2.24 kommst du übrigens wenn du in der Browser adress zeile "unstable" mit "2.24" ersetzt.
Also zb. aus
http://developer.gnome.org/gtkmm/unstab ... dgets.html
machst du
http://developer.gnome.org/gtkmm/2.24/g ... dgets.html
nur die main docu seite ist nicht mehr auf dem server.
Zur Dokumentation von gtkmm 2.24 kommst du übrigens wenn du in der Browser adress zeile "unstable" mit "2.24" ersetzt.
Also zb. aus
http://developer.gnome.org/gtkmm/unstab ... dgets.html
machst du
http://developer.gnome.org/gtkmm/2.24/g ... dgets.html
nur die main docu seite ist nicht mehr auf dem server.
Re: [erl.] gtk/gtkmm widgets in box nur teilweise gleichgroß
Cool, danke.
Vielleicht schaffen sie es ja wheezy nächstes Jahr stable zu machen, dann hat sich gtkmm 2 für mich auch erledigt.
Vielleicht schaffen sie es ja wheezy nächstes Jahr stable zu machen, dann hat sich gtkmm 2 für mich auch erledigt.