如何解决如何像 Kivy 中的 CSS 一样按类名选择小部件?
例如,我想为应用程序中的所有按钮添加背景颜色:
<Layout1>:
<BoxLayout>:
<Button>:
text: "btn 1"
<Button>:
text: "btn 2"
<Button>:
text: "btn 3"
<Button>:
text: "Another button outside the Boxlayout"
<Layout2>:
<GridLayout>:
cols: 2
<Button>:
text: "btn 1 in a grid"
<Button>:
text: "btn 2 in a grid"
但我不想像这样手动为所有这些人做:
...
<Button>:
text: "btn 1"
background_color: (1,1)
<Button>:
text: "btn 2"
background_color: (1,1)
<Button>:
text: "btn 3"
background_color: (1,1)
...
所以我正在寻找一种更短的方法,比如我们可以在所有按钮上放置一个类似 CSS 的类并通过类名访问它们。类似的东西:
...
<Button>:
text: "btn 1"
class: "btn_class"
<Button>:
text: "btn 2"
class: "btn_class"
<Button>:
text: "btn 3"
class: "btn_class"
...
在python代码中:
for btn in get_widgets_by_classname("btn_class") :
btn.background_color = (1,1)
在文档 https://kivy.org/doc/stable/api-kivy.lang.html#overview 中它说:
您可以针对特定类别的小部件(类似于 CSS 概念 类的)通过使用 cls 属性(例如 cls=MyTestWidget)
但我对 cls 属性的使用不是很清楚。
解决方法
美好的一天。在 kvlang 中,您有两个选项可以创建模板小部件。
- 创建自定义小部件:
自定义小部件允许您创建一个新的、定义的小部件。
<CustomButton@Button>:
background_color: (1,1)
然后使用以下语法在您想要的任何位置使用按钮。
CustomButton:
- 使用规则:
在脚本开始时,使用以下语法为小部件分配属性。
<Button>:
background_color:(1,1)
在创建后调用的任何小部件都将使用这些属性创建。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。