Mehrere GUI-Toolboxen enthalten Ereignisse wie on_change
, die jedes Mal ausgelöst werden, wenn sich der Text in einem Textfeld ändert.kivy, wie Ereignis durch Textänderung auslösen
Entsprechend diesem: https://kivy.org/docs/api-kivy.uix.textinput.html das Ereignis on_text
sollte gleich sein. Also habe ich ein einzelnes TextInput-Feld erstellt, in dem jedesmal eine Änderung eines einzelnen Buchstabens erwartet wird, der den Inhalt der Box im Terminal anzeigt. Dies ist der Code:
from kivy.app import App
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout
class LoginScreen(BoxLayout):
def __init__(self, **kwargs):
super(LoginScreen, self).__init__(**kwargs)
self.orientation = 'horizontal'
self.mytext = TextInput(text='500', multiline = False)
self.add_widget(self.mytext)
self.mytext.bind(on_text = self.calc)
#self.mytext.bind(on_text_validate = self.calc)
def calc(self, mytext):
print mytext.text
class MyApp(App):
def build(self):
return LoginScreen()
if __name__ == '__main__':
MyApp().run()
Doch nichts passiert, was natürlich bedeutet, dass die calc
Funktion überhaupt nicht ausgelöst wird. Beachten Sie, dass das Ereignis on_text_validate
funktioniert, weil der Inhalt der Box im Terminal gedruckt wird, wenn ich die Eingabetaste drücke.
Also, habe ich das on_text
Ereignis missverstanden, und wenn ja, wie kann ich mein Ziel erreichen?