私はいくつかのKivy
ウィジェットの値を設定するために使用した文字列を持っているとします。どのように私はすべてのウィジェットをその文字列の変更に反応させることができますか?
私はその文字列を各ウィジェットのプロパティにすることができますが、1つのウィジェットのプロパティを変更すると、同じプロパティを持つ他のウィジェットはそれに応じて変更されません。複数の場所で文字列値を変更するにはどうすればよいですか?
私が欲しいの動作は、リストの参照のようなものです:
st = ["1"]
st1 = st
st.append("2")
print(st1, st) # output: ['1', '2'] ['1', '2']
あなたが見ることができるように、私はリストst
を変更すると、リストst1
も変化します。これは、st1
がリストへの参照であるからです。この動作を文字列に適用するにはどうすればよいですか? Pythonの標準ライブラリには、ここで私は
を望むものを達成するための方法を持っていない場合はおそらくKivyでデモ、Kivy
をされて使用して:
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
class TestApp(App):
def change_text(self, bt):
self.string += "!"
print(self.string)
def build(self):
self.string = "Hello"
lb = Label(text = self.string)
bt = Button(on_press = self.change_text)
tx = TextInput(text = self.string)
bl = BoxLayout()
bl.add_widget(lb)
bl.add_widget(tx)
bl.add_widget(bt)
return bl
TestApp().run()
ボタンが押されますので、アプリケーションの属性string
変更は、 (Label
、TextInput
)