您好,我在使用 kivy 的文本输入小部件的 input_type 属性时遇到问题。问题是我制作了两个自定义文本输入,其中一个称为 StrText,其中设置了 input_type = 'text'。然后是第二个文本输入,名为 NumText,其 input_type = 'number'。
我使用 kivy 启动器在手机上进行了测试,发现一旦我点击 NumText 输入,它就会带来一个数字键盘,如果我点击 StrText,它就会带来相同的数字键盘,而不是普通的文本键盘。如果你稍微玩一下,你会发现大多数时候都会返回数字键盘。
请问我的代码有问题吗,或者我该如何解决这个问题?
你会在下面找到我的代码
main.py
from kivy.app import App
from kivy.uix.bubble import Bubble
from kivy.core.window import Window
class BubbleApp(App):
pass
if __name__ == '__main__':
Window.fullscreen = False
BubbleApp().run()
气泡.kv
GridLayout:
cols: 1
StrText:
height: '48dp'
size_hint_y: None
Label:
text: 'Number keyboard below'
height: '48dp'
size_hint_y: None
multiline: False
font_size: self.height * .5
NumText:
height: '48dp'
size_hint_y: None
<StrText@TextInput>:
input_type: 'text'
multiline: False
font_size: self.height * .5
<NumText@TextInput>:
input_type: 'number'
input_filter: 'int'
multiline: False
font_size: self.height *.5
最近,当我使用 Kivy 1.10.0 构建我的应用程序时,我遇到了类似的问题。我在 Android 中使用默认键盘应用程序,但它仍然在不断变化数字键盘 to 文本键盘.
这次我尝试使用 kivy==1.9.1 和 Cython==0.23.1 和 buildozer==0.32 来构建 .apk,它对我有用。
Note:
我建议创建一个 virtualenv 来安装上述特定软件包并使用它来创建 .apk 文件。
virtualenv build32env
source build32env/bin/activate
pip install buildozer==0.32 Cython==0.23.1
执行后buildozer init
确保改变buildozer.spec
file:
from
requirements = kivy
to
requirements = kivy==1.9.1
否则它将使用最新的 kivy 版本来构建 .apk 文件。
有关 buildozer 的更多详细信息 http://buildozer.readthedocs.io/en/latest/
希望它对其他人有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)