Python/Kivy:使用回车键提交表单 [英] Python/Kivy : Form submit using enter key
本文介绍了Python/Kivy:使用回车键提交表单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 enter
键从一个 TextInput
移动到另一个 TextInput
.
我想使用 enter
键从最后一个 TextInput
移动到 Button
.当我再次按下 Enter 键时,应该调用 root.abc()
函数.
谁能告诉我怎么做?
I am moving from one TextInput
to another TextInput
using enter
key.
I want to move from last TextInput
to Button
using enter
key .When I press again enter key then should be call root.abc()
function.
Can someone tell me how to done it?
from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.core.window import Window
Window.clearcolor = (0.5, 0.5, 0.5, 1)
Window.size = (300, 100)
class User(Screen):
def abc(self):
print('Test')
class Test(App):
def build(self):
return self.root
if __name__ == '__main__':
Test().run()
test.kv
User:
BoxLayout:
orientation: "vertical"
TextInput:
id:test1
focus : True
text: ' '
width: 100
multiline: False
on_text_validate: test2.focus = True
TextInput:
id:test2
text: ' '
width: 100
multiline: False
on_text_validate: test3.focus = True
Button:
id:test3
text: 'Ok'
on_press : root.abc()
推荐答案
这里我们使用按键绑定,检查按钮的焦点并按下 Enter 键.
Here we are using a key down binding, check for button's focus and Enter key pressed.
from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.core.window import Window
from kivy.properties import ObjectProperty
Window.clearcolor = (0.5, 0.5, 0.5, 1)
Window.size = (300, 100)
class User(Screen):
test3 = ObjectProperty(None)
def __init__(self, **kwargs):
super(User, self).__init__(**kwargs)
Window.bind(on_key_down=self._on_keyboard_down)
def _on_keyboard_down(self, instance, keyboard, keycode, text, modifiers):
if self.test3.focus and keycode == 40: # 40 - Enter key pressed
self.abc()
def abc(self):
print('Test')
class Test(App):
def build(self):
return self.root
if __name__ == '__main__':
Test().run()
test.kv
#:kivy 1.10.0
User:
test3: test3
BoxLayout:
orientation: "vertical"
TextInput:
id:test1
focus : True
text: ' '
width: 100
multiline: False
on_text_validate: test2.focus = True
TextInput:
id:test2
text: ' '
width: 100
multiline: False
on_text_validate:
test3.background_normal = ''
test3.background_color = [0, 0, 1, 0.5] # 50% translucent blue
test3.focus = True
Button:
id:test3
text: 'Ok'
focus: False
on_press : root.abc()
输出
这篇关于Python/Kivy:使用回车键提交表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文