如何解决Kivy 滑块值
我正在尝试引用一个滑块值,但是我不断收到该值不存在的错误。这里的上下文是我在 kv 文件中创建 Slider 的位置
<Manager>:
id: screen_manager
Screen:
name: 'home'
canvas.after:
Color:
rgba: (37/255,150/255,190/255,0.3)
Rectangle:
size: self.size
pos: self.pos
canvas:
Rectangle:
size: self.size
pos: self.pos
source: "art/menu.png"
Button:
text: 'Play Albreakdo!'
size_hint: (.3,.15)
pos: (root.center_x,root.center_y)
font_size: '15sp'
on_release: root.current = 'game';game.play()
Button:
text: 'Controls'
size_hint: (.3,root.center_y - self.height * 1.5)
font_size: '15sp'
on_release: root.current = 'control'
Button:
text: 'About'
size_hint: (.3,root.center_y - self.height * 3)
font_size: '15sp'
on_release: root.current = 'about'
BoxLayout:
orientation: 'vertical'
size_hint: (0.4,0.2)
Slider:
id: slider1
min: 100
max: 150
step: 5
value_track: True
value_track_color: [0,1,1]
Label:
text: "Duration: " + str(slider1.value)
Slider:
id: slider2
min: 5
max: 15
step: 1
value_track: True
value_track_color: [1,1]
Label:
text: "Radiation: " + str(slider2.value)
管理器类本身是空的,它代表我游戏的主菜单
class Manager(ScreenManager):
"""
screen manager
"""
我需要在名为 Paddle 的类中引用滑块值
class Paddle(Widget):
"""
Player's avatar. Contains color,timer,and radiation properties
"""
duration = BrickBreakApp.slider_value
radiation = 10
我尝试在管理器类中创建一个 ObjectProperty 并通过 id 引用它,但仍然出现错误。知道如何在 Paddle Class 中获取滑块值吗?
这是我的带有管理器实例的根应用程序:
class BrickBreakApp(App):
"""
main app with build function
"""
slider_value = App.get_running_app().root.ids.slider1.value
def build(self):
"""
builds the app
"""
music = SoundLoader.load("sound/PatakasWorld.wav")
music.loop = True
music.volume = 0.03
if music:
music.play()
return Manager(transition=WipeTransition())
解决方法
由于您的根小部件是 Manager
的实例,因此您可以使用 Manager
访问 App.get_running_app().root
实例。然后您可以使用 ids
访问 Slider
:
slider_value = App.get_running_app().root.ids.slider2.value
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。