Kivy CheckBox 在指定区域外激活
Kivy CheckBox Activate Outside Designated Area
我一直在玩这个 in changing the background image of the CheckBox inorder to ultimately change the boarder/padding - 找到另一个 post,但似乎没有更新(?)。除此之外,我注意到当我创建一个 CheckBox 时,指定用于容纳 CheckBox 的“区域”可用于 activate/deactive CheckBox(见下图)。
from kivy.config import Config
Config.set('graphics', 'multisamples', '0')
from kivy.app import App
from kivy.lang import Builder
sm = Builder.load_file('main.kv')
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
Screen:
BoxLayout:
size_hint_y: None
orientation: 'horizontal'
Button:
text: 'Go back'
CheckBox:
size_hint_x: None
width: 60
canvas.before:
Rectangle:
source: 'white.png'
size: sp(22), sp(22)
pos: int(self.center_x - sp(11)), int(self.center_y - sp(11))
所有红色区域都可以点击激活按钮。这是为什么?而且,我如何将 activation/deactivation 专门限制为实际的 CheckBox?
由于 CheckBox
在布局 class 中,它将占用所有可用的 space(对它自己)。因此,如果您希望将其限制为一个大小,只需明确设置即可。另外,要将它放在 BoxLayout
in orientation: 'horizontal'
的中间,您可以使用 pos_hint
。因此,您修改后的 kv 规则如下所示:
...
CheckBox:
size_hint: None, None
size: 60, 60
pos_hint: {"center_y" : 0.5}
canvas.before:
...
要设置自定义背景,您可以查看其 API Reference。
我一直在玩这个
from kivy.config import Config
Config.set('graphics', 'multisamples', '0')
from kivy.app import App
from kivy.lang import Builder
sm = Builder.load_file('main.kv')
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
Screen:
BoxLayout:
size_hint_y: None
orientation: 'horizontal'
Button:
text: 'Go back'
CheckBox:
size_hint_x: None
width: 60
canvas.before:
Rectangle:
source: 'white.png'
size: sp(22), sp(22)
pos: int(self.center_x - sp(11)), int(self.center_y - sp(11))
所有红色区域都可以点击激活按钮。这是为什么?而且,我如何将 activation/deactivation 专门限制为实际的 CheckBox?
由于 CheckBox
在布局 class 中,它将占用所有可用的 space(对它自己)。因此,如果您希望将其限制为一个大小,只需明确设置即可。另外,要将它放在 BoxLayout
in orientation: 'horizontal'
的中间,您可以使用 pos_hint
。因此,您修改后的 kv 规则如下所示:
...
CheckBox:
size_hint: None, None
size: 60, 60
pos_hint: {"center_y" : 0.5}
canvas.before:
...
要设置自定义背景,您可以查看其 API Reference。