我有一个应用程序,你可以输入数字(很多),而且键盘也很难输入字母,我希望它只是数字(0-9)和一个点。使用Kivy的.kv文件和Python有什么方法可以做到这一点吗?我在.kv文件中尝试了input_type: 'number'
,但无法使其工作。谢谢
编辑: 我也试过用泡泡,运气不好。不过,如果可能的话,最好有一个泡泡数字垫
编辑2: 我在这个问题上提出了另一个悬赏,因为当我把VKeyboard放在一个物理设备上(连同一个弹出窗口)时,它会断开。具体来说,VKeyboard不会显示(在转到另一个TextInput字段后也会崩溃),并且我的弹出窗口不能正确缩放。我的日志如下所示
10-21 08:30:23.944 11210 11233 I python : [INFO ] [Logger ] Record log in /data/user/0/org.test.bfcalc5/files/app/.kivy/logs/kivy_20-10-21_3.txt
10-21 08:30:23.944 11210 11233 I python : [INFO ] [Kivy ] v1.11.1
10-21 08:30:23.945 11210 11233 I python : [INFO ] [Kivy ] Installed at "/data/user/0/org.test.bfcalc5/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
10-21 08:30:23.946 11210 11233 I python : [INFO ] [Python ] v3.8.1 (default, Oct 18 2020, 14:08:48)
10-21 08:30:23.946 11210 11233 I python : [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462
10-21 08:30:23.946 11210 11233 I python : [INFO ] [Python ] Interpreter at ""
10-21 08:30:25.540 11210 11233 I python : [INFO ] [Factory ] 184 symbols loaded
10-21 08:30:26.210 11210 11233 I python : [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
10-21 08:30:26.289 11210 11233 I python : [INFO ] [Text ] Provider: sdl2
10-21 08:30:26.387 11210 11233 I python : [INFO ] [Window ] Provider: sdl2
10-21 08:30:26.437 11210 11233 I python : [INFO ] [GL ] Using the "OpenGL ES 2" graphics system
10-21 08:30:26.439 11210 11233 I python : [INFO ] [GL ] Backend used <sdl2>
10-21 08:30:26.440 11210 11233 I python : [INFO ] [GL ] OpenGL version <b'OpenGL ES 3.2 build 1.10@5187610'>
10-21 08:30:26.440 11210 11233 I python : [INFO ] [GL ] OpenGL vendor <b'Imagination Technologies'>
10-21 08:30:26.441 11210 11233 I python : [INFO ] [GL ] OpenGL renderer <b'PowerVR Rogue GE8322'>
10-21 08:30:26.442 11210 11233 I python : [INFO ] [GL ] OpenGL parsed version: 3, 2
10-21 08:30:26.442 11210 11233 I python : [INFO ] [GL ] Texture max size <4096>
10-21 08:30:26.443 11210 11233 I python : [INFO ] [GL ] Texture max units <16>
10-21 08:30:26.482 11210 11233 I python : [INFO ] [Window ] auto add sdl2 input provider
10-21 08:30:26.484 11210 11233 I python : [INFO ] [Window ] virtual keyboard allowed, single mode, docked
10-21 08:30:26.756 11210 11233 I python : [INFO ] [GL ] NPOT texture support is available
10-21 08:30:26.818 11210 11233 I python : [WARNING] [Base ] Unknown <android> provider
10-21 08:30:26.819 11210 11233 I python : [INFO ] [Base ] Start application main loop
10-21 08:30:26.938 11210 11233 I python : [WARNING] [GL ] Unpack subimage support is not available
10-21 08:30:33.249 11210 11233 I python : [INFO ] [Base ] Leaving application in progress...
10-21 08:30:33.250 11210 11233 I python : Traceback (most recent call last):
10-21 08:30:33.250 11210 11233 I python : File "/home/ubuntu/BFCalcApp/.buildozer/android/app/main.py", line 88, in <module>
10-21 08:30:33.251 11210 11233 I python : File "/home/ubuntu/BFCalcApp/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/bfcalc5/kivy/app.py", line 855, in run
10-21 08:30:33.253 11210 11233 I python : File "/home/ubuntu/BFCalcApp/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/bfcalc5/kivy/base.py", line 504, in runTouchApp
10-21 08:30:33.255 11210 11233 I python : File "/home/ubuntu/BFCalcApp/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/bfcalc5/kivy/core/window/window_sdl2.py", line 747, in mainloop
10-21 08:30:33.257 11210 11233 I python : File "/home/ubuntu/BFCalcApp/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/bfcalc5/kivy/core/window/window_sdl2.py", line 479, in _mainloop
10-21 08:30:33.258 11210 11233 I python : File "/home/ubuntu/BFCalcApp/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/bfcalc5/kivy/base.py", line 339, in idle
10-21 08:30:33.259 11210 11233 I python : File "/home/ubuntu/BFCalcApp/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/bfcalc5/kivy/clock.py", line 591, in tick
10-21 08:30:33.260 11210 11233 I python : File "kivy/_clock.pyx", line 384, in kivy._clock.CyClockBase._process_events
10-21 08:30:33.261 11210 11233 I python : File "kivy/_clock.pyx", line 414, in kivy._clock.CyClockBase._process_events
10-21 08:30:33.261 11210 11233 I python : File "kivy/_clock.pyx", line 412, in kivy._clock.CyClockBase._process_events
10-21 08:30:33.262 11210 11233 I python : File "kivy/_clock.pyx", line 154, in kivy._clock.ClockEvent.tick
10-21 08:30:33.263 11210 11233 I python : File "kivy/_clock.pyx", line 86, in kivy._clock.ClockEvent.get_callback
10-21 08:30:33.264 11210 11233 I python : File "/home/ubuntu/BFCalcApp/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/bfcalc5/kivy/weakmethod.py", line 56, in is_dead
10-21 08:30:33.265 11210 11233 I python : ReferenceError: weakly-referenced object no longer exists
10-21 08:30:33.266 11210 11233 I python : Python for android ended.
编辑3: 多亏了法迪·阿布的突袭,我才能够找出弹出的问题。现在,我正在寻找增加键盘的大小,因为它在手机上非常小。我找到了this个帖子,但没有从中找到任何帮助
你能发一段代码吗?如果您查看文档,正如您所说,您可以使用属性输入类型:“number”来执行此操作,但可能您的实例化中缺少了某些内容,或者类似的内容,您可以向我们展示一段代码吗?以下内容来自文档:
我使用以下示例完成了此操作:
https://github.com/kivy/kivy/tree/master/examples/keyboard
您的.kv文件应该是这样的:
您应该有一个方法来调用Python文件中带有数字布局的键盘
从上面的链接获取布局,并将其与脚本保存在同一文件夹中
输出应该如下所示:
更新
在发布这篇文章之后,我找到了一个更好的解决方案here
但是,它缺少我添加的一些功能:
您需要从here下载arial-unicode-ms.ttf字体,并将字体与main.py脚本放在同一文件夹中,以便能够在键盘上显示删除符号
main.py
测试.kv
输出
相关问题 更多 >
编程相关推荐