为了制作所有标签'文本支持标记我在我的kivy文件顶部使用以下kivy语言代码:
<Label@Label>:
markup: True
稍后使用时:
<SomeWidget>:
Label:
text: '[b]Dog[/b]'
我得到一个标签,文字'Dog'
按预期加粗。因此,我的所有标签都按预期将markup
设置为True
。
但是,我收到以下警告:
[WARNING ] [Factory ] Ignored class "Label" re-declaration. Current - module: kivy.uix.label, cls: None, baseclass: None, filename: None. Ignored - module: None, cls: None, baseclass: Label, filename: /home/Projects/gui/maingui.kv.
为什么我会收到此警告?我应该以不同的方式做某事吗?
答案 0 :(得分:2)
只需使用
<Label>:
markup: True
使用@
表示法,您声明了从Label
派生的新dynamic subclass Label
。
在kv lang中创建类似<MyLabel@Label>:
的动态类很有用,特别是如果稍后在python中不需要对类的引用,以防止重新定义行为可能引起的任何冲突({{1在其他默认Label
中广泛使用,并且通常更改其属性可能会无意中影响其他小部件的外观和感觉。