这段代码在Roberto Ulloa的《Kivy——Python中的交互式应用程序和游戏》(interactiveapplications and Games in Python)第二版中。在
#:kivy 1.9.0
<Subtitle@Label>:
bcolor: .1, .1, .1, 0
halign: 'center'
font_size: '20px'
size: self.texture_size[0]+20, self.texture_size[1]+20
y: 50
canvas.before:
Color:
rgba: self.bcolor
Rectangle:
pos: self.pos
size: self.size
subtitle.kv
文件中的类Subtitle
是从Label
派生的,用于在视频播放器中显示字幕(播放器项目是一个教程,它占用了本书的整个章节)
bcolor
用于video.py
中的Python代码来更改字幕的不透明度。在
最后两行更改了名为slabel
的Subtitle
实例的属性。当编写代码时,它不会运行。错误:
为什么self.bcolor
等于None
?在
Python 3.6.1-Kivy 1.10.0-Windows 7(64位)
我花了一些时间才找到解决方案(这是一本学习Kivy的书),所以如果你拼命搜索,你可能会很感激这篇文章。。。在
bcolor
必须是Kivy属性,这可以在Python代码中完成。因为没有与kv文件相关联的py文件,所以可以在使用Subtitle
的地方,在video.py
中完成。必须使用Python语法声明类。我将基类声明从kv移到py(因此我从kv文件中的@Label
从<Subtitle@Label>
中删除,并在video.py
中添加了以下内容:这很管用:
相关问题 更多 >
编程相关推荐