前提・実現したいこと
python初心者でKivyでGUIアプリを作っています。
テキストをラベルに表示したいのですがうまくいきません。
よろしくお願いします。
発生している問題・エラーメッセージ
class A()でTextWidget.text = 'aaa'としているのにラベルに表示されない。。 TextWidgetクラスとは別のクラスで変数にテキストを入れて表示させる方法を知りたいです。
該当のソースコード
python
1#-*- coding: utf-8 -*- 2 3from kivy.app import App 4from kivy.uix.widget import Widget 5 6from kivy.properties import StringProperty 7 8from kivy.core.text import LabelBase, DEFAULT_FONT 9from kivy.resources import resource_add_path 10 11 12class TextWidget(Widget): 13 text = StringProperty() 14 15 def __init__(self, **kwargs): 16 super(TextWidget, self).__init__(**kwargs) 17 self.text = '' 18 19 def buttonClicked(self): 20 A.aaa() 21 print(self.text) 22 23 def buttonClicked2(self): 24 self.B() 25 print(self.text) 26 27 def B(self): 28 self.text = 'bbb' 29 30class A(): 31 32 def aaa(): 33 TextWidget.text = 'aaa' 34 35class TestApp(App): 36 def __init__(self, **kwargs): 37 super(TestApp, self).__init__(**kwargs) 38 39 def build(self): 40 return TextWidget() 41 42TestApp().run()
kivy
1TextWidget: # ルートに追加 2 3<TextWidget>: 4 BoxLayout: 5 orientation: 'vertical' 6 size: root.size 7 # ラベル 8 Label: 9 id: label1 10 font_size: 68 11 text: root.text 12 13 BoxLayout: 14 Button: 15 id: button1 16 size_hint_x: 30 17 text: "A" 18 font_size: 68 19 on_press: root.buttonClicked() # ボタンをクリックした時 20 Button: 21 id: button1 22 size_hint_x: 30 23 text: "B" 24 font_size: 68 25 on_press: root.buttonClicked2() # ボタンをクリックした時
試したこと
テキスト自体は変数に入っているのは確認できました。
補足情報(FW/ツールのバージョンなど)
Python v3.6.5
Kivy v1.11.1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。