Python Kivy-无法重新聚焦输入字段?
我有以下使用kivy的示例- 当我在输入字段1中写入内容并按下重置时,一切正常(输入字段被删除,关注字段1)。 但当我在field2中更改某些内容并按下重置按钮时,应用程序似乎被破坏了 为什么会这样?为什么语句Python Kivy-无法重新聚焦输入字段?,python,kivy,Python,Kivy,我有以下使用kivy的示例- 当我在输入字段1中写入内容并按下重置时,一切正常(输入字段被删除,关注字段1)。 但当我在field2中更改某些内容并按下重置按钮时,应用程序似乎被破坏了 为什么会这样?为什么语句self.ids.stockTicker.focus=True每次都不起作用 py文件: import threading from kivy.app import App from kivy.uix.widget import Widget from kivy.lang import B
self.ids.stockTicker.focus=True
每次都不起作用
py文件:
import threading
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.lang import Builder
from kivy.core.window import Window
Builder.load_file("TryApp.kv")
class MyLayout(Widget):
Window.size = (550, 700)
def Reset(self):
self.ids.stockTicker.text = ""
self.ids.stockTicker.focus = True
self.ids.index.text = "SP500"
def pressReset(self):
threading.Thread(target=self.Reset).start()
class MyTry(App):
def build(self):
return MyLayout()
if __name__ == "__main__":
MyTry().run()
kv文件:
<MyLayout>
BoxLayout:
orientation: "vertical"
size: root.width, root.height
GridLayout:
size_hint: (1, .5)
cols: 2
Label:
text: "Field1"
font_size: 18
TextInput:
id: stockTicker
focus: True
Label:
text: "Field2"
font_size: 18
TextInput:
id: index
text: "xyz"
Button:
id: buttonReset
text: "Reset"
#font_size: 20
on_press: root.pressReset()
size_hint: (None,None)
width: 110
height: 70
盒子布局:
方向:“垂直”
尺寸:根.宽度,根.高度
网格布局:
尺寸提示:(1.5)
科尔斯:2
标签:
文本:“字段1”
字号:18
文本输入:
id:股票代码
焦点:正确
标签:
文本:“字段2”
字号:18
文本输入:
id:索引
文本:“xyz”
按钮:
id:buttonReset
文本:“重置”
#字体大小:20
按:root.pressReset()
大小提示:(无,无)
宽度:110
身高:70
我想你只需要改变一下:
on_press: root.pressReset()
致:
原因是,当按下按钮时的事件触发pressReset()
方法时,焦点会根据需要更改,但随后按钮
释放事件会将焦点更改回按钮
。将其更改为发布时的事件可以消除该问题
on_release: root.pressReset()