我正在尝试制作一个网格状的小部件,但我对如何获得跨越整个小部件的垂直线感到困惑。现在我得到的代码片段如下所示:
SIZE = 2
class TestWidget(Widget):
def __init__(self, **kwargs):
super(TestWidget, self).__init__(**kwargs)
with self.canvas:
for i in range(SIZE):
Line(points=[self.size[0]*(i/SIZE), 0, self.size[0]*(i/SIZE), self.size[1]], color=ListProperty((0,0,1,1)))
self.size[i]
的数量似乎只给出一个整数,然后api将其解释为像素数而不是画布的大小。这是有道理的,但现在我不确定现在该去哪里。
任何帮助将不胜感激!
您可以使用kivymd中的MDSeparator来完成此操作
MDSeparator:
orientation:'horizontal'
height: "10dp"
你也可以设置为"垂直",你也可以改变颜色
一个简单的例子
from kivymd.app import MDApp
from kivy.lang import Builder
kv="""
#:import F kivy.factory.Factory
BoxLayout:
orientation:'vertical'
padding:20
GridLayout:
cols:2
MDLabel:
text:"hello"
MDCheckbox:
MDLabel:
text:"hello"
MDCheckbox:
MDLabel:
text:"hello"
MDCheckbox:
MDSeparator:
orientation:'horizontal'
height: "10dp"
GridLayout:
cols:2
MDLabel:
text:"hello"
MDCheckbox:
MDLabel:
text:"hello"
MDCheckbox:
MDLabel:
text:"hello"
MDCheckbox:
"""
class Main(MDApp):
def build(self):
return Builder.load_string(kv)
Main().run()