如何在kivy中使用浮动布局在应用程序的左下角放置标签?

Posted

技术标签:

【中文标题】如何在kivy中使用浮动布局在应用程序的左下角放置标签?【英文标题】:How to place a label in the bottom-left corner of application using float layout in kivy? 【发布时间】:2020-06-09 09:36:21 【问题描述】:

目标:

使用 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


参考图片:


非常感谢您的阅读。

【问题讨论】:

只是想知道!你想为我的游戏赢得荣誉吗?谢谢! 【参考方案1】:

在你的行中:

    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"

【讨论】:

答案不起作用,但是当我更改它时它起作用了0.2

以上是关于如何在kivy中使用浮动布局在应用程序的左下角放置标签?的主要内容,如果未能解决你的问题,请参考以下文章

Kivy Python-文本输入框填充整个浮动布局屏幕

如何将纯 python 中动态创建的按钮添加到用 Kivy 语言编写的 kivy 布局中?

相对于布局放置和移动一组带有 kivy 的图像

Kivy - 在文本周围绘制矩形

文本输入突然停止在 Kivy 应用程序中工作

如何在Kivy(Python)中叠加2个布局?