python - Kivy按钮位置和标签背景色

标签 python kivy

我用 3 个按钮和一个文本区域在 Kivy 中设置了一个网格布局。三个按钮不是从 0,0 开始的,标签背景颜色也没有应用。

这是我的主要代码

import kivy
import os
import sys
from kivy.uix.gridlayout import GridLayout
from kivy.app import App
from kivy.lang import Builder

Builder.load_file('exceltoolui.kv')

class checker_ui(GridLayout):
    pass


class Checker(App):
    def build(self):
        return checker_ui()

if __name__ == '__main__':
    Checker().run()

这是我的 .kv 文件代码

<checker_ui>:
    rows:2
    cols:1
    padding: 10
    spacing: 10
    BoxLayout:
        Button:
            id:this_week_btn
            text: 'This Week Report'
            size_hint:(None,None)
            size: root.width/3,root.height/12
        Button:
            id:last_week_btn
            text: 'Last Week Report'
            size_hint:(None,None)
            size: root.width/3,root.height/12
        Button:
            id:confirm_btn
            text: 'Start Checking'
            size_hint:(None,None)
            size: root.width/3,root.height/12
    BoxLayout:
        Label:
            id:entry
            text:'test'
            font_size:18
            multiline:True
            background_color:1,50,0,1

我当前的输出在按钮上方有一个很大的黑色空间,标签没有背景色。我的预期输出是让按钮从顶部而不是屏幕中心开始。

Current Output

最佳答案

当在布局中设置小部件并且不为小部件设置size_hint时,布局将设置等距大小,因此请注意BoxLayout都占据了一半 window 。解决方法是将None设置为size_hint_y,使其放在最上面,高度最小。

另一方面,如果您想设置背景颜色,则必须使用 Canvas 。此外rgba的组成部分在01之间。

在按钮的情况下,宽度必须由布局确定,如果您设置它并且它大于布局允许的宽度,您将看到不适当的设计,如示例图像中的第三个按钮所示不响应填充。

<checker_ui>:
    rows:2
    cols:1
    padding: 10
    spacing: 10
    BoxLayout:
        size_hint_y: None
        height: self.minimum_height
        Button:
            id:this_week_btn
            text: 'This Week Report'
            size_hint:(1, None)
            height: root.height/12
        Button:
            id:last_week_btn
            text: 'Last Week Report'
            size_hint:(1, None)
            height: root.height/12
        Button:
            id:confirm_btn
            text: 'Start Checking'
            size_hint:(1, None)
            height: root.height/12
    BoxLayout:
        Label:
            id:entry
            text:'test\nTEST'
            font_size:18
            multiline:True
            canvas.before:
                Color:
                    rgba: 1, .5, 0, 1
                Rectangle:
                    pos: self.pos
                    size: self.size

enter image description here

关于python - Kivy按钮位置和标签背景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49641307/

相关文章:

python Flask 应用程序使用 ACR 在 Azure Linux 容器上使用 Datadog 跟踪 APM 日志

Python 脚本不会运行

python - 随机时间绑定(bind)工作

python - kv 语言的 Kivy 屏幕管理器引用

java - Android 上的 Kivy,在空对象引用上发生 JVM 异常 : Attempt to invoke virtual method . ..

python - 意外的结果——具有常量函数的 numpy fromfunction

python - Scrapy 选择具有特定属性名称的 HTML 元素

python - 将长日期时间转换为日期 (dd/mm/yyyy)

python - 为什么我的代码在函数中连接服务器时不起作用,但当我使用 __init__ 调用连接时却工作正常?

python - Kivy中根据窗口大小更改小部件的大小和位置