Ich habe ein Fenster mit mehrere Container (VBox, HBox, ...). Einige Container zeichne ich selber, was erstmal gut funktioniert. In diese Containers packe ich Labels und Buttons. Nun sollen gerade die Labels nicht direkt am Rand kleben, also setze ich mit set_border_width die Rahmenbreite. Jetzt treten die Probleme auf. Wenn ich die Fenstergröße ändere, erfolgt das Zeichnen der Container nicht mehr korrekt. Ohne Rahmen gibt es die Probleme nicht. Ich denke mal, es liegt daran, dass der Bereich des Rahmen nicht aktualisiert bzw. neu gezeichnet wird. Auch wenn ich einen weiteren Container in den selbst gezeichneten packe und bei dem die Rahmenbreite einstelle, bringt das kein anderes Ergebnis.
Die Container werden durch abfangen des on_expose_event Signal bzw. in selbiger Funktion mit Cairomm gezeichnet.
Weiß jemand wie man es hin bekommt oder hat eine Lösung, wie auch bei Einsatz eines Rahmen der Container korrekt gezeichnet wird?
[erl.] gtkmm2 - widget selber zeichnen und set_border_width
[erl.] gtkmm2 - widget selber zeichnen und set_border_width
Zuletzt geändert von GeoW am 29.08.2012 22:29:50, insgesamt 1-mal geändert.
Re: gtkmm2 - widget selber zeichnen und set_border_width
Hallo GeoW
Hast du
set_app_paintable (true);
oder auch
set_redraw_on_allocate(true);
für dein Container widget gesetzt?
http://developer.gnome.org/gtkmm/stable ... ee67c7761f
Hast du
set_app_paintable (true);
oder auch
set_redraw_on_allocate(true);
für dein Container widget gesetzt?
http://developer.gnome.org/gtkmm/stable ... ee67c7761f
Re: gtkmm2 - widget selber zeichnen und set_border_width
Hallo brummer,
und wieder mal mein Dank an dich.
Ich hatte es auch schon mit verschiedene Funktionen/Einstellungen versucht aber die richtige war bisher nicht dabei. Mit set_redraw_on_allocate(true) funktioniert es. Ich bin eigentlich die Liste von deinem Link durchgegangen. Könnte mich ja ärgern, das ich die Funktion irgendwie ignoriert habe.
Aber schön zu wissen, dass, wenn man schon fast am verzweifeln ist, hier Hilfe bekommt. Zumindest in meinen Fällen. Und so komme ich wieder ein Stück weiter.
Also noch mal Danke.
und wieder mal mein Dank an dich.
Ich hatte es auch schon mit verschiedene Funktionen/Einstellungen versucht aber die richtige war bisher nicht dabei. Mit set_redraw_on_allocate(true) funktioniert es. Ich bin eigentlich die Liste von deinem Link durchgegangen. Könnte mich ja ärgern, das ich die Funktion irgendwie ignoriert habe.
Aber schön zu wissen, dass, wenn man schon fast am verzweifeln ist, hier Hilfe bekommt. Zumindest in meinen Fällen. Und so komme ich wieder ein Stück weiter.
Also noch mal Danke.