Widget-Size setzen in Kivy

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
mothome
User
Beiträge: 17
Registriert: Donnerstag 20. Oktober 2016, 13:56

Hallo zusammen,

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)
Wie zu sehen ist, sind alle y-Positionen und -Größen von sizex abgeleitet.
Zuletzt geändert von Anonymous am Donnerstag 20. Oktober 2016, 14:46, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Antworten