我的Kivy语言文件有很多font_size属性,都有相同的值,在那里我可以在KV lang中分配一个变量?当前KV文件样本:
#User ID
Label:
text: 'User ID'
font_size: 20
text_size: self.size
TextInput:
id: userid
font_size: 20
#User PW
Label:
text: 'Password'
font_size: 20
text_size: self.size
TextInput:
id: password
password: True
font_size: 20
Button:
text: 'Login'
font_size: 20
Run Code Online (Sandbox Code Playgroud)
有可能设置它有点像这样:
#User ID
@fs: 20
Label:
text: 'User ID'
font_size: fs
text_size: self.size
TextInput:
id: userid
font_size: fs
#User PW
Label:
text: 'Password'
font_size: fs
text_size: self.size
TextInput:
id: password
password: True
font_size: fs
Button:
text: 'Login'
font_size: fs
Run Code Online (Sandbox Code Playgroud)
通过这样做,我只能通过更改FS变量值来立即更改字体大小,同样,类似的解决方案可以帮助我更快地创建基于主题的文件.谢谢.
我只能通过更改FS变量值来立即更改字体大小,
你可以设置一个值#:set name value,但这不是你想要的.由于您希望变量更新,因此您应该使用kivy属性,以便事件系统为您处理.
在这种情况下,由于你需要很多不同的东西来依赖于这样的大小,你可以使用你的app类的属性.
class YourApp(App):
font_size = NumericProperty(20)
Run Code Online (Sandbox Code Playgroud)
然后在kv
font_size: app.font_size
Run Code Online (Sandbox Code Playgroud)
然后,对App实例的font_size的任何更改都将自动传播到这些kv规则.