python - 如何在 python 中使用 id 的 kivy?
问题描述
由于某种原因,此代码无法正常工作。我正在尝试使函数“ definir() ”来查找TextInput (id=roupa)
但没有按预期工作。
def nomeapp(self):
close_button = MDFlatButton(text="Cancelar", on_release=self.close_dialog_nomeapp)
confirme_button = MDFlatButton(text="Definir",on_release=self.definir)
self.nomeappp = MDDialog(title="Definir Nome",
type="custom",
content_cls=TextInput(text="This is a test",id="roupa"),
text="Aqui vai entrar um textinput",
size_hint=(0.7, 1.), buttons=[close_button, confirme_button])
self.nomeappp.open()
def definir(self,obj):
print(self.ids.roupa.text)
self.nomeappp.dismiss()
def close_dialog_nomeapp(self, obj):
self.nomeappp.dismiss()
非常感谢某人为解决上述问题提供的一些指导/帮助。提前致谢。
解决方案
这是错误
追溯
(most recent call last):
File "properties.pyx", line 860, in kivy.properties.ObservableDict.__getattr__
KeyError: 'roupa'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\dev\Python\ContadorDeJohrei\main.py", line 438, in <module>
start.run()
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivy\app.py", line 855, in run
runTouchApp()
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivy\base.py", line 504, in runTouchApp
EventLoop.window.mainloop()
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivy\core\window\window_sdl2.py", line 747, in mainloop
self._mainloop()
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivy\core\window\window_sdl2.py", line 479, in _mainloop
EventLoop.idle()
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivy\base.py", line 342, in idle
self.dispatch_input()
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivy\base.py", line 327, in dispatch_input
post_dispatch_input(*pop(0))
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivy\base.py", line 293, in post_dispatch_input
wid.dispatch('on_touch_up', me)
File "_event.pyx", line 707, in kivy._event.EventDispatcher.dispatch
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivymd\uix\behaviors\ripplebehavior.py", line 245, in on_touch_up
return super().on_touch_up(touch)
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivymd\uix\button.py", line 969, in on_touch_up
return super().on_touch_up(touch)
File "C:\Users\Igor\anaconda3\envs\k39\lib\site-packages\kivy\uix\behaviors\button.py", line 179, in on_touch_up
self.dispatch('on_release')
File "_event.pyx", line 703, in kivy._event.EventDispatcher.dispatch
File "_event.pyx", line 1214, in kivy._event.EventObservers.dispatch
File "_event.pyx", line 1138, in kivy._event.EventObservers._dispatch
File "C:\dev\Python\ContadorDeJohrei\main.py", line 343, in definir
print(self.ids.roupa.text)
File "properties.pyx", line 863, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'
推荐阅读
- pyspark - 如何将pyspark数据框保存在单个csv文件中
- javascript - 为什么我的 nodeValue 属性不起作用?
- python - 哪个更快:添加键值对或检查键是否存在?
- mysql - 我怎样才能提出这个 sql join 请求
- php - Twilio Studio 和 Rebrandly 链接缩短器 - 返回解析而不是字符串
- solidity - 当我尝试在 vscode 中导入 Openzeppelin 合同时出现 ParserError
- python - Python boto3 (AWS EC2) 列出嵌套 JSON 数据
- excel - Excel匹配多个标准不起作用
- .htaccess - 多次使用 .htaccess 将网站 URL 从 example.com/post.php?slug=test 更改为 example.com/post/test
- python - PySAT 是否支持并行求解?