我有一个kv段落,位于我的Python代码中。
我想做的是选择这个按钮并对其进行动画处理。动画本身由按下NoButton
触发。NoButton
有一个类,它是根部件类的子类。不幸的是,尽管已经成功地引用了kv代码中的id,但似乎无法真正使用它。
按下NoButton
没有任何反应。没有错误,什么都没有。如果我尝试打印id,我得到的是它引用的按钮位置:
<__main__.MainButton object at 0x7fd5db0d5590>
这是kv代码的一部分:
<MainClass>:
<MainScreen>:
id: main
AnchorLayout:
size: root.size
anchor_x: 'center'
anchor_y: 'center'
padding: 0, 0, 0, 50
MainButton:
id: pics
rgba: 1,5,1,1
size_hint_x: None
size_hint_y: None
height: main.height / 1.5
width: main.width / 1.5
还有Python:
class MainScreen(Screen):
pass
class MainButton(Button):
pass
class NoButton(ButtonBehavior, Image, MainClass):
def on_press(self):
anim = Animation(x=300, y=300)
anim.start(MainButton())
print(MainScreen().ids.pics)
您会注意到在这里,anim.start
引用了类而不是id。不幸的是,它产生了相同的结果:什么也没有。
将 pics
创建为对象属性并在kv中声明也无法正常工作。
在这里我确实完全不知道该怎么办。我浏览了少量类似的问题,但是当涉及到深入的kivy开发时,真的没有多少帮助/指南。
我正在使用Python 3.5.3和Kivy 1.9.2-dev0。
非常感谢任何帮助/建议或正确方向的指引:)