Kivy for Python:验证后重置焦点或将焦点锁定到文本输入字段
我正在Kivy中开发一个待办事项应用程序:我有一个文本输入字段来输入任务。之后,我用回车确认。按Enter键将使用Kivys内置的文本验证功能启动我的“确认”功能。此“确认”功能清除输入字段,并在下面创建一个按钮,显示任务。如果按下该按钮,它将删除自身 我的问题是: 按Enter键验证输入后,文本输入字段失去焦点。我必须点击文本输入字段才能输入第二个任务,这很不方便。 我希望文本输入字段始终保持焦点 我试图通过在确认功能中包含Kivy for Python:验证后重置焦点或将焦点锁定到文本输入字段,python,kivy,focus,Python,Kivy,Focus,我正在Kivy中开发一个待办事项应用程序:我有一个文本输入字段来输入任务。之后,我用回车确认。按Enter键将使用Kivys内置的文本验证功能启动我的“确认”功能。此“确认”功能清除输入字段,并在下面创建一个按钮,显示任务。如果按下该按钮,它将删除自身 我的问题是: 按Enter键验证输入后,文本输入字段失去焦点。我必须点击文本输入字段才能输入第二个任务,这很不方便。 我希望文本输入字段始终保持焦点 我试图通过在确认功能中包含text\u input.focus=True来重置焦点。这不起作用
text\u input.focus=True
来重置焦点。这不起作用
我还尝试使用Kivys时钟每隔0.5秒调用text\u input.focus=True
。这也不管用
通常,我似乎无法通过text\u input.focus=True
设置焦点
我很想找到解决这两个问题的办法
import kivy
kivy.require('1.9.0')
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.gridlayout import GridLayout
class MyTextInput(TextInput):
def on_parent(self, widget, parent):
self.focus = True
# Create the App class
class TutorialApp(App):
def build(self):
def confirm(self):
todo_element = Button(
text = text_input.text,
on_press = remove)
grid.add_widget(todo_element)
text_input.text = ""
#text_input.focus = True
def remove(self):
self.parent.remove_widget(self)
grid = GridLayout(
cols = 1,
row_default_height = 30,
row_force_default = True)
text_input = MyTextInput(
text ="",
multiline = False,
on_text_validate = confirm)
grid.add_widget(text_input)
return grid
# Run the App
if __name__ == "__main__":
TutorialApp().run()
是
TextInput
的一个属性,它满足您的需要。看。属性为text\u validate\u unfocus
。因此,您可以更改MyTextInput
实例的创建以使用此属性:
text_input = MyTextInput(
text ="",
multiline = False,
text_validate_unfocus = False,
on_text_validate = confirm)
非常感谢。不知怎么的,我没找到。