是否有一种方法可以使Kivy中的垂直线跨越整个小部件?



我正在尝试制作一个网格状的小部件,但我对如何获得跨越整个小部件的垂直线感到困惑。现在我得到的代码片段如下所示:

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()

最新更新