BoxLayout 背景颜色位置错误
BoxLayout background color in wrong position
鉴于下面的布局,我希望 BoxLayout 是屏幕顶部的一个 44px 栏,带有红色背景和两个 "Date time" 标签。如屏幕截图所示,标签位于预期位置(因此框布局的位置是正确的),但红色背景并非如此:
。
我确定我遗漏了一些明显的东西,因为这是我第一次使用 Kivy 和 KV。我尝试使用 canvas.{before, after} 无济于事。我错过了什么?预先感谢任何答案!
#: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'
Edit:根据 Totem 的回答,将 pos: self.pos
添加到 BoxLayout canvas 矩形就可以了。
正如您提到的,您的 BoxLayout 就是您想要的位置。它充满了两个标签,这也是它们应该在的地方。为了让所有这些的背景看起来都是红色的,你可以把标签背景设为红色。您已经将 BoxLayout 设置为红色,只是在标签后面看不到它,而且我不完全确定如何使这些透明(我相信这是可能的)。学习kivy,我想,到头来其实就是实验。
要使标签具有红色背景(给你相同的效果),你可能可以使用它们各自的画布,就像你对 BoxLayout 所做的那样,除了使用 canvas.before
。届时您将不再需要使用浮动或框布局来完成此操作。
来自评论:
将 boxlayouts 矩形位置设置为 pos: self.pos
我解决了这个问题。见图中红色区域。 。在本节中,我在 self.size 之后添加了 pos:self.pos。
Rectangle:
size: self.size
pos:self.pos
应该可以。
鉴于下面的布局,我希望 BoxLayout 是屏幕顶部的一个 44px 栏,带有红色背景和两个 "Date time" 标签。如屏幕截图所示,标签位于预期位置(因此框布局的位置是正确的),但红色背景并非如此:
我确定我遗漏了一些明显的东西,因为这是我第一次使用 Kivy 和 KV。我尝试使用 canvas.{before, after} 无济于事。我错过了什么?预先感谢任何答案!
#: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'
Edit:根据 Totem 的回答,将 pos: self.pos
添加到 BoxLayout canvas 矩形就可以了。
正如您提到的,您的 BoxLayout 就是您想要的位置。它充满了两个标签,这也是它们应该在的地方。为了让所有这些的背景看起来都是红色的,你可以把标签背景设为红色。您已经将 BoxLayout 设置为红色,只是在标签后面看不到它,而且我不完全确定如何使这些透明(我相信这是可能的)。学习kivy,我想,到头来其实就是实验。
要使标签具有红色背景(给你相同的效果),你可能可以使用它们各自的画布,就像你对 BoxLayout 所做的那样,除了使用 canvas.before
。届时您将不再需要使用浮动或框布局来完成此操作。
来自评论:
将 boxlayouts 矩形位置设置为 pos: self.pos
我解决了这个问题。见图中红色区域。
Rectangle:
size: self.size
pos:self.pos
应该可以。