Kv语言(kivy)中的变量
Variables in Kv language (kivy)
我的 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
是否可以像这样设置它:
#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
通过这样做,我将能够仅通过更改 FS 变量值来立即更改字体大小,而且,类似的解决方案可能会帮助我更快地创建基于主题的文件。谢谢。
I would be able to change the font size at once only by changing the FS variable value,
您可以使用 #:set name value
设置一个值,但这并不是您想要的。由于您希望更新变量,因此您应该使用 kivy 属性 以便事件系统为您处理。
在这种情况下,由于您希望很多不同的东西都取决于这样的大小,例如您可以使用应用程序的 属性 class。
class YourApp(App):
font_size = NumericProperty(20)
然后在kv
font_size: app.font_size
对应用程序实例 font_size 的任何更改都会自动传播到这些 kv 规则。
是的,有办法。你要找的是这个表达式:
#:set name value
可以看文档here
您的 .kv 文件:
#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
我的 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
是否可以像这样设置它:
#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
通过这样做,我将能够仅通过更改 FS 变量值来立即更改字体大小,而且,类似的解决方案可能会帮助我更快地创建基于主题的文件。谢谢。
I would be able to change the font size at once only by changing the FS variable value,
您可以使用 #:set name value
设置一个值,但这并不是您想要的。由于您希望更新变量,因此您应该使用 kivy 属性 以便事件系统为您处理。
在这种情况下,由于您希望很多不同的东西都取决于这样的大小,例如您可以使用应用程序的 属性 class。
class YourApp(App):
font_size = NumericProperty(20)
然后在kv
font_size: app.font_size
对应用程序实例 font_size 的任何更改都会自动传播到这些 kv 规则。
是的,有办法。你要找的是这个表达式:
#:set name value
可以看文档here
您的 .kv 文件:
#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