【发布时间】:2020-12-16 20:19:09
【问题描述】:
我尝试在 self 之后添加实例,但仍然无法正常工作
这是错误信息
File "kivy\_event.pyx", line 703, in kivy._event.EventDispatcher.dispatch
File "kivy\_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
File "kivy\_event.pyx", line 1138, in kivy._event.EventObservers._dispatch
TypeError: sss() takes 1 positional argument but 2 were given
这里是完整的 kivy python 代码
import kivy
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
class Touch(Widget):
def __init__(self, **kwargs):
super(Touch, self).__init__(**kwargs)
self.cols = 1
self.Rc1 = Button(text="Submit", font_size=40)
self.Rc1.bind(on_press=self.sss)
self.add_widget(self.Rc1)
def sss(self):
self.Rc1 = Button(text="Push Me !",
font_size="20sp",
background_color=[1, 0, 0, 1],
color=(1, 1, 1, 1),
size=(32, 32),
size_hint=(.2, .2),
pos=(300, 250))
class MyApp(App):
def build(self):
return Touch()
if __name__ == "__main__":
MyApp().run()
【问题讨论】:
-
你让我们猜测错误在哪里。请更新问题以包含完整的错误消息回溯。
-
文件“kivy_event.pyx”,第 703 行,在 kivy._event.EventDispatcher.dispatch 文件“kivy_event.pyx”,第 1214 行,在 kivy._event.EventObservers.dispatch 文件“kivy_event.pyx”中,第 1138 行,在 kivy._event.EventObservers._dispatch TypeError: sss() 接受 1 个位置参数,但给出了 2 个
-
只需将
,*args添加到sss()的args 列表中即可。 -
谢谢,John Anderson,错误信息消失了,但我在 sss 中的函数仍然没有执行,或者以另一种方式,我的按钮没有改变它的颜色。
-
你有
self.Rc1访问现有按钮并更改其值 - 可能是self.Rc1.color = ...
标签: python function kivy typeerror