Python Kivy access.kv变量
我正在使用Kivy for python,我想知道是否有办法访问我在.kv文件中声明的一些变量,如下所示:Python Kivy access.kv变量,python,user-interface,kivy,Python,User Interface,Kivy,我正在使用Kivy for python,我想知道是否有办法访问我在.kv文件中声明的一些变量,如下所示: #:set global_background_color_A (0.4,0.4,0.4, 1) #:set global_background_color_B (0.2,0.2,0.2, 1) #:set global_background_color_C (0.6,0.6,0.6, 1) #:set global_seperator_color_Blue (0.26,.545,.65,
#:set global_background_color_A (0.4,0.4,0.4, 1)
#:set global_background_color_B (0.2,0.2,0.2, 1)
#:set global_background_color_C (0.6,0.6,0.6, 1)
#:set global_seperator_color_Blue (0.26,.545,.65,1)
现在,如果我能在python代码中动态更改一些按钮的背景色,那就太好了。为此,我必须访问这些变量
最简单的方法是什么
提前感谢,,
Finn我使用以下代码作为示例应用程序:
控制器.kv
#:kivy 1.0
#:set global_background_color_A (0.4,0.4,0.4, 1)
#:set global_background_color_B (0.2,0.2,0.2, 1)
#:set global_background_color_C (0.6,0.6,0.6, 1)
#:set global_seperator_color_Blue (0.26,.545,.65,1)
<Controller>:
label_wid: my_custom_label
button_wid: my_custom_button
BoxLayout:
orientation: 'vertical'
padding: 20
Button:
id: my_custom_button
text: 'My controller info is: ' + root.info
on_press: root.do_action()
Label:
id: my_custom_label
text: 'My label before button press'
我已经用箭头标记了\uuuu main\uuuu.py
中的重要行
如果查看kv语言解析器,您可以看到它使用set
命令做了什么。它执行一些错误检查,并eval()
s容器中的值global\u idmap
现在,我认为这是不可取的。正如您所看到的,kivy没有公开global\u idmap
。我认为这是一个不应该依赖的实现细节
如果您想更改代码中内容的颜色,只需执行以下操作:
def do_action(self):
...
self.button_wid.background_color = (1, 0, 1, 1)
如果你发布了一个自给自足的例子(如我所做的),那么我就容易多了,请以后考虑。伟大的谢谢!:)
def do_action(self):
...
self.button_wid.background_color = (1, 0, 1, 1)