擅长:python、mysql、java
<p>好吧,在玩了一点,我找到了一个解决方案,以实现我想要的功能。不过,要弄清楚这一点确实解决了为什么专注行为会以我在我最初的帖子中描述的方式进行。在</p>
<p>如果有人感兴趣,这里有一个解决办法:</p>
<pre><code>class FloatInput(TextInput):
def __init__(self, **kwargs):
super(FloatInput, self).__init__(**kwargs)
def on_touch_down(self, touch):
if self.collide_point(touch.x, touch.y):
prompt_content = BoxLayout(orientation='vertical') # Main layout
num_pad = NumPadWidget()
prompt_content.add_widget(num_pad)
def my_callback(instance):
self.text = num_pad.ids.num_label.text
self.popup.dismiss()
# Now define the popup, with the content being the layout:
self.popup = Popup(id='num_pad_popup', title='Enter value', content=prompt_content, size_hint=(0.8,0.5), autodismiss=False)
num_pad.ids.enter_btn.bind(on_press=my_callback)
# Open the pop-up:
self.popup.open()
</code></pre>
<p>具体地说,这个解决方案的工作原理是使用on_touch_down,而不是寻找文本输入的焦点。另外,寻找与“if”的碰撞自碰撞点(touch.x,touch.y)“防止同一类型的所有小部件响应用户触摸的错误。在</p>
<p>我希望这对某人有帮助!在</p>