python - BoxLayout 背景颜色位置错误

标签 python kivy

鉴于下面的布局,我希望 BoxLayout 是屏幕顶部的 44px 栏,红色背景,带有两个“日期时间”标签。如屏幕截图所示,标签位于预期位置(因此框布局的位置是正确的),但红色背景并非如此:

enter image description here .

我确定我遗漏了一些明显的东西,因为这是我第一次使用 Kivy 和 KV。我尝试使用 Canvas 。{之前,之后}无济于事。我错过了什么?提前感谢任何答案!

#:kivy 1.0
#
FloatLayout:    
    canvas:
        Color:
            # #263238
            rgb: 0x26 / 255.0, 0x32 / 255.0, 0x38 / 255.0

        Rectangle:
            size: self.size

    BoxLayout:
        canvas:
            Color:
                rgb: 1, 0, 0
            Rectangle:
                size: self.size

        orientation: 'horizontal'
        padding: 10
        spacing: 10
        size_hint: 1, None
        pos_hint: {'top': 1}
        height: 44

        Label:
            height: 24
            text_size: self.width, None
            text: 'Date time'

        Label:
            height: 24
            text_size: self.width, None
            text: 'Date time 2'

    Label:
        text: 'testing'

编辑:根据 Totem 的回答,将 pos: self.pos 添加到 BoxLayout Canvas 矩形就可以了。

最佳答案

正如您提到的,您的 BoxLayout 就是您想要的位置。它充满了两个标签,这也是它们应该在的地方。为了让所有这些的背景看起来都是红色的,你可以把标签背景设为红色。您已经将 BoxLayout 设置为红色,只是在标签后面看不到它,而且我不完全确定如何使这些透明(我相信这是可能的)。我认为,学习 kivy 最终完全是关于实验。

要使标签具有红色背景(给你相同的效果),你可能可以使用它们各自的 Canvas ,就像你对 BoxLayout 所做的那样,除了使用 canvas.before。届时您将不再需要使用 float 布局或框布局来完成此操作。

来自评论: 将 boxlayouts 矩形位置设置为 pos: self.pos

关于python - BoxLayout 背景颜色位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812960/

相关文章:

python - 如何使用 selenium python 在 pre 标签内复制特定文本

python-2.7 - 在kivy python中在屏幕之间交换变量

Python kivy - 如何降低 TextInput 的高度

python - 如何将文本分成 block 最小化解决方案?

python - 直接在 Python 中嵌入来自 Matlab MEX 文件的函数

python - pip install webtest 后 Google App Engine 中出现“没有名为 webtest 的模块”错误

python - 在 n 个或更多空格处拆分字符串

python - 基维 : how to get widget by id (without kv)

python - 使用 pyinstaller 为 kivy 应用程序生成单个 exe

python - 如何使用 kivy 从 def 中的其他类访问变量?