일부 Kivy
위젯의 값을 설정하는 데 사용 된 문자열이 있다고 가정 해 보겠습니다. 모든 위젯을 해당 문자열의 변경에 어떻게 대응시킬 수 있습니까?
그 문자열을 각 위젯의 속성으로 만들 수 있지만, 하나의 위젯의 속성을 변경하면 동일한 속성을 가진 다른 속성이 적절하게 변경되지 않습니다.여러 위치에서 문자열 값을 변경하는 방법은 무엇입니까?
내가 원하는 동작은 목록 참조 같다 :
st = ["1"]
st1 = st
st.append("2")
print(st1, st) # output: ['1', '2'] ['1', '2']
당신이 볼 수 있듯이, 나는 목록 st
을 변경할 때, 목록 st1
도 변경됩니다. st1
은 목록에 대한 참조이기 때문입니다. 이 동작을 문자열에 적용하려면 어떻게해야합니까? 파이썬의 표준 라이브러리는 여기에 내가
를 원하는 것을 달성 할 수있는 방법을 가지고 있지 않은 경우 아마도 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
)