(Kivy) Text über mehrere Zeilen und zentriert

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
H3llo
User
Beiträge: 20
Registriert: Montag 9. Mai 2022, 10:17

Hallo, noch eine Anfängerfrage von mir. Ich möchte einen Text mehrzeilig und zentriert darstellen, wobei der Umbruch in eine neue Zeile automatisch geschehen soll. Im Internet habe ich diese Lösungen gefunden:

Code: Alles auswählen

Label:
    size_hint_y: None
    text_size: self.width, None
    height: self.texture_size[1]
Der Text wird jedoch nicht zentriert, sondern unten links in der Ecke angezeigt.
Benutzeravatar
Dennis89
User
Beiträge: 1121
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

um den Text in einem Label so darzustellen wie du es beschreibst:

Code: Alles auswählen

import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.lang import Builder
kivy.require('1.9.1')


class Screen(Widget):
    pass


class App(App):
    def build(self):
        return Screen()

if __name__ == '__main__':
    kv = Builder.load_file("xyz.kv")
    App().run()
und die *.kv:

Code: Alles auswählen

#:kivy 1.9.1

<Screen>:
    Label:
        text_size: root.width, None
        size: self.texture_size
        text: 'Hallo, ich bin mittig :) Und um das besser sehen zu können, folgenden jetzt aneinander gereihte Buchstabend, die tatsächlich auch deutsche Wörter ergeben, auch wenn der Sinn dieser Aneinanderreihung nicht ersichtlich ist'
        halign: 'center'
        valign: 'center'
Jetzt musst du "nur" noch das Label da positionieren und die gewünschte Größe festlegen. Das war ja nicht die Aufgabe?

Hoffe es hilft, ich finde es ist relativ schwer dazu Infos zu finden.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
H3llo
User
Beiträge: 20
Registriert: Montag 9. Mai 2022, 10:17

Großartig! Das funktionert! :)
Antworten