Как разместить метку в левом нижнем углу приложения, используя макет с плавающей точкой в ​​киве? - PullRequest
1 голос
/ 25 февраля 2020

Цель:

  • Чтобы прикрепить метку к левому нижнему углу с помощью FloatLayout.

Ожидаемый результат:

  • Метка должна находиться в левом нижнем углу одной строкой.

Фактический результат:

  • Метка слева внизу, но с двойной линией.

Код для справки:

class ScreenThree(Screen):

    def __init__(self, **kwargs):
        super(ScreenThree, self).__init__(**kwargs)
        self.video1 = Video(source="somevideo.mpg")
        float_layout = FloatLayout()
        self.label1 = Label(text="Just a place holder video", opacity=0, pos_hint={"x": 0, "bottom": 1}, size_hint=[0.1, 0.1])
        self.label1.texture_size = self.label1.size
        self.label1.text_size = self.label1.texture_size
        self.label1.halign = "center"
        self.label1.valign = "center"
        self.add_widget(float_layout)
        float_layout.add_widget(self.label1)
        float_layout.add_widget(self.video1, index=1)
        self.video1.opacity = 0

    def on_enter(self):
        self.video1.allow_stretch = True
        self.video1.state = "play"
        self.label1.opacity = 1
        Clock.schedule_once(self._adjust_opacity, 2)

    def _adjust_opacity(self, *dt):
        self.video1.opacity = 1

Изображение для справки:

Just a picture!

Большое спасибо за чтение.

1 Ответ

1 голос
/ 26 февраля 2020

В вашей строке:

    self.label1 = Label(text="Just a place holder video", opacity=0, pos_hint={"x": 0, "bottom": 1}, size_hint=[0.1, 0.1])

Просто измените size_hint на [None, 0.1]:

    self.label1 = Label(text="Just a place holder video", opacity=1, pos_hint={"x": 0, "bottom": 1}, size_hint=[None, 0.1])

и удалите строки:

    self.label1.texture_size = self.label1.size
    self.label1.text_size = self.label1.texture_size
    self.label1.halign = "center"
    self.label1.valign = "center"
...