【发布时间】:2020-12-06 04:40:19
【问题描述】:
我已经用这个代码工作了几天了。
我不能让它工作,我的目标是在不影响'self'的情况下将来自不同类的函数的参数传递给不同类中的另一个函数
请查看示例代码。
PY 代码:
`
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
from kivy.uix.button import Button
#Custom Button
class PassdataButton(Button):
def on_release(self):
ThisScreen.getters(datas=['5','3'])
class ThisScreen(Screen):
def getters(self,datas):
self.ids.gettersBox.text = f"There is {datas[0]} Apple's and {datas[0]} Banana's"
class SM(ScreenManager):
pass
kv_file = Builder.load_file('getData.kv')
class projectApps(App):
def build(self):
return kv_file
if __name__ == "__main__":
projectApps().run()
`
KV 代码:
SM:
ThisScreen:
name: 'ThisScreen'
<ThisScreen>:
canvas.before:
canvas:
Rectangle:
size: self.size
source: 'im-502378444.jpg'
BoxLayout:
padding: 10
orientation: 'vertical'
TextInput:
id: gettersBox
BoxLayout:
size_hint_y: .3
orientation: 'horizontal'
Button:
text: 'GetterButton'
on_release: root.getters(datas = 'this data is from GetterButton')
#CustomButton
PassdataButton:
text: "Apple's & Banana's"
每次我运行代码并单击我创建的自定义按钮时,都会出现错误
ThisScreen.getters(datas=['5','3'])
TypeError: getters() missing 1 required positional argument: 'self'
当我为 self 的缺失位置参数添加一个值时,例如 ThisScreen.getters(self=True, datas=['5','3']),它给了我不同的错误,我无法在 getters() 函数下访问/调用其他元素。
self.ids.gettersBox.text = f"There is {datas[0]} Apple's and {datas[0]} Banana's"
AttributeError: 'bool' object has no attribute 'ids'
希望你能帮助我编写这个简单的代码。
非常感谢!
【问题讨论】:
标签: python python-3.x kivy kivy-language