Python・Kivy object is not subscriptableの解決方法。
「テキスト変更」ボタンを押したときに「Oneクラスのlabel_change」を実行したいのですが、下記のコードだと「TypeError: 'kivy.properties.DictProperty' object is not subscriptable」というエラーが返ってきてしまいます。
何処が間違っているのでしょうか?プログラミング初心者のためエラー内容を見ても全くわかりませんでした・・・。申し訳ないのですがどなたか正しい記述方法を教えていただけないでしょうか。
.kvファイルを書き換えて「Baseクラスのlabel_change」を実行した場合は上手く働きます。
.py
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class Base(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
def label_change(self):
self.ids["info"].text = "A"
class One(object):
def __init__(self, age="15", sex="Female"):
self.age = age
self.sex = sex
def label_change(self):
MainFrame.ids["info"].text = "A"
~~省略~~
.kv
#:import One __main__.One
<Base>:
orientation: "vertical"
Label:
id: info
text: "label"
BoxLayout:
Button:
text: "テキスト変更"
on_press: One().label_change()