【发布时间】:2021-04-17 11:46:08
【问题描述】:
我正在尝试使用 Kivy 制作一个音乐播放器,它只有两个按钮;一个用于播放,一个用于暂停。当我尝试将功能绑定到按钮时,当我按下按钮时,会出现错误。在搜索这个非常自己的站点时,有人建议使用来自functools 库的partial 函数。但即使这样也没有用。我的代码如下。
class Layout(FloatLayout):
def __init__(self, **kwargs):
super(Layout, self).__init__(**kwargs)
self.size = Window.size
self.play = Button(text="Play", size_hint=(0.25, 0.25), font_size=36, background_color=color,
pos=(self.size[0]*(3/8), self.size[1]*(4/10)) )
self.pause = Button(text="Pause", size_hint=(0.25, 0.25), font_size=36, background_color=color,
pos=(self.size[0]*(3/8), self.size[1]*(1/10)) )
self.play.bind(on_press=self.play)
self.pause.bind(on_press=self.pause)
self.add_widget(self.play)
self.add_widget(self.pause)
def play(self):
print("PLay")
def pause(self):
print("Pause")
这给出了这个错误
AssertionError:
不可调用
通过使用偏函数
self.play.bind(on_press=partial(self.play))
self.pause.bind(on_press=partial(self.pause))
我得到了这个
TypeError:第一个参数必须是可调用的
【问题讨论】:
标签: python python-3.x user-interface kivy