KivyMD 如何使用 on_focus 事件获取焦点文本字段的 id
KivyMD how to get focused textfield's id using on_focus event
我想在用户关注条码文本字段时打开 phone 的摄像头。
但是,on_focus 事件会被触发,即使您将注意力集中在另一个文本字段上也是如此。我必须以某种方式确保聚焦的文本字段是条形码文本字段。我该怎么做?
on_double_tap事件似乎解决了我的问题,但我想一键打开相机。
这是我的相关 .kv 代码:
GridLayout:
rows: 4
cols: 1
row_default_height: 40
padding: [10,70,10,10]
spacing: 0
MDTextField:
id: txt_barcode_3
hint_text: "Barkod"
on_focus: root.barcode_camera_insert()
MDTextField:
id: txt_reference_3
hint_text: "Referans"
MDTextField:
id: txt_productname_3
hint_text: "Ürün Adı"
MDRectangleFlatButton
id: btn_save_3
text: "Kaydet"
font_size: "20sp"
size_hint: 1,0
on_press: root.add_barcode()
只要 focus
发生变化,就会触发 on_focus
事件,即使它从 True
变为 False
。所以你的 root.barcode_camera_insert()
在任何一种情况下都会被调用。我还没有测试过这个,但试试看:
on_focus: root.barcode_camera_insert() if self.focus else None
我想在用户关注条码文本字段时打开 phone 的摄像头。
但是,on_focus 事件会被触发,即使您将注意力集中在另一个文本字段上也是如此。我必须以某种方式确保聚焦的文本字段是条形码文本字段。我该怎么做?
on_double_tap事件似乎解决了我的问题,但我想一键打开相机。
这是我的相关 .kv 代码:
GridLayout:
rows: 4
cols: 1
row_default_height: 40
padding: [10,70,10,10]
spacing: 0
MDTextField:
id: txt_barcode_3
hint_text: "Barkod"
on_focus: root.barcode_camera_insert()
MDTextField:
id: txt_reference_3
hint_text: "Referans"
MDTextField:
id: txt_productname_3
hint_text: "Ürün Adı"
MDRectangleFlatButton
id: btn_save_3
text: "Kaydet"
font_size: "20sp"
size_hint: 1,0
on_press: root.add_barcode()
只要 focus
发生变化,就会触发 on_focus
事件,即使它从 True
变为 False
。所以你的 root.barcode_camera_insert()
在任何一种情况下都会被调用。我还没有测试过这个,但试试看:
on_focus: root.barcode_camera_insert() if self.focus else None