我用 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
我当前的输出在按钮上方有一个很大的黑色空间,标签没有背景色。我的预期输出是让按钮从顶部而不是屏幕中心开始。
最佳答案
当在布局中设置小部件并且不为小部件设置size_hint
时,布局将设置等距大小,因此请注意BoxLayout
都占据了一半 window 。解决方法是将None
设置为size_hint_y
,使其放在最上面,高度最小。
另一方面,如果您想设置背景颜色,则必须使用 Canvas 。此外rgba
的组成部分在0
到1
之间。
在按钮的情况下,宽度必须由布局确定,如果您设置它并且它大于布局允许的宽度,您将看到不适当的设计,如示例图像中的第三个按钮所示不响应填充。
<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
关于python - Kivy按钮位置和标签背景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49641307/