我有两个文件test.py
和test.kv
。
我想通过按Enter键从一个TextBox移动到另一个TextBox。如何实现这一目标?
from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.properties import ObjectProperty
Window.size = (500, 330)
class TestScreen(Screen):
popup = ObjectProperty(None)
class Test(App):
def build(self):
self.root = Builder.load_file('test.kv')
return self.root
if __name__ == '__main__':
Test().run()
#:kivy 1.10.0
TestScreen:
GridLayout:
cols: 2
padding : 30,30
spacing: 10, 10
row_default_height: '40dp'
Label:
text: 'Name'
TextInput:
id: name
Label:
text: 'Class'
TextInput:
id: clas
Button:
text: 'Ok'
Button:
text: 'Cancel'
答案 0 :(得分:1)
由于您想使用 Enter 更改焦点,我想您不需要多行texinput。因此,一个选项是使用on_text_validate
事件:
<强> on_text_validate 强>
当用户点击“输入”时,仅在multiline = False模式下触发。这也将使文本输入无法聚焦。
在您的kv文件中,您可以执行以下操作:
#:kivy 1.10.0
TestScreen:
GridLayout:
cols: 2
padding : 30,30
spacing: 10, 10
row_default_height: '40dp'
Label:
text: 'Name'
TextInput:
id: name
multiline: False
on_text_validate: clas.focus = True # <<<<<<<<<<<
Label:
text: 'Class'
TextInput:
id: clas
multiline: False
Button:
text: 'Ok'
Button:
text: 'Cancel'