Ich habe mir ein eigenes Widget gebastelt, dass mit eine Fussleiste anzeigt.
Sinn sollte sein, dass das Widget am Ende eines vertikalen Box-Layouts steht und damit einen grafischen Abschluss bildet.
Das Widget kann in der Größe angepasst werden. Jedoch alles im Verhältnis der Widget-Breite. Somit berechnet sich die Höhe des Widgets aus der Widget Breite.
Da Box-Layout alles Widgets gleichmäßig auf das Fenster verteilt, erscheint je nach Fensterhöhe ein Leerraum vor meinem Widget oder das Widget wird unten abgeschnitten.
Wie kann ich angeben, dass das Widget genau xx Pixel hoch ist, abhängig von der Fensterbreite?
Hier der Code dazu
Code: Alles auswählen
class widgetFooter(Widget):
def __init__(self, **kwargs):
super(widgetFooter, self).__init__(**kwargs)
if 'color' in kwargs:
self.color=Color(*kwargs["color"])
else:
self.color=Color(1,1,1)
self.bind(pos=self.update_canvas,size=self.update_canvas)
self.update_canvas()
def update_canvas(self, *args):
self.canvas.clear()
sizex = self.width
sizey = self.height
posx = self.x
posy = self.y
with self.canvas:
Color(self.color.r, self.color.g, self.color.b)
Ellipse(pos=(posx, posy), size=(sizex*0.16, sizex*0.16), angle_start=180, angle_end=270)
Rectangle(pos=(posx+sizex*0.08, posy), size=(sizex*0.175, sizex*0.08))
Rectangle(pos=(posx+sizex*0.08, posy), size=(sizex*0.895, sizex*0.05))
Ellipse(pos=(posx+sizex*0.95, posy), size=(sizex*0.05, sizex*0.05), angle_start=0, angle_end=180)
Color(0, 0, 0, 1)
Ellipse(pos=(posx+sizex*0.225, posy+sizex*0.05), size=(sizex*0.06, sizex*0.06), angle_start=180, angle_end=270)