gpt4 book ai didi

android - 为我的 kivy app python 设置一个数字键盘

转载 作者:太空狗 更新时间:2023-10-29 14:48:09 25 4
gpt4 key购买 nike

我有一个带有一些 textinput 的 kivy 应用程序,我想在我的智能手机上显示一个数字键盘。我一直在阅读它,我认为使用属性 input_type=number 我可以获得正确的结果,但我意识到现在 kivy 更新不起作用。当我的 textinput 被聚焦时,我怎么能得到数字键盘?在横向模式下使用应用程序可能会有用,或者键盘仍然会占用半个屏幕?你有代码吗:

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.core.window import Window


class LoginScreen(GridLayout):
def __init__(self,**kwargs):
super(LoginScreen, self).__init__(**kwargs)
self.cols=2
self.add_widget(Label(text='Subject'))
self.add_widget(Label(text=''))
self.add_widget(Label(text='1'))
self.add_widget(TextInput(multiline=False))
self.add_widget(Label(text='2'))
self.add_widget(TextInput(multiline=False))
self.add_widget(Label(text='3'))
self.add_widget(TextInput(multiline=False))
self.add_widget(Label(text='4'))
self.add_widget(TextInput(multiline=False))
b1=Button(text='Exit',background_color=[0,1,0,1],height=int(Window.height)/9.0) #doesn't work properly
self.add_widget(b1)
b2=Button(text='Run',background_color=[0,1,0,1],height=int(Window.height)/9.0) #doesn't work properly
self.add_widget(b2)
b1.bind(on_press=exit)




class SimpleKivy(App):
def build(self):
return LoginScreen()


if __name__=='__main__':
SimpleKivy().run()

最佳答案

我想有点晚了,但也许明天有人会找它。

如果是这样,您应该更改 TextInput 的 input_type 属性,例如:

self.add_widget(TextInput(multiline=False, input_type = 'number'))

我建议您为此创建一个新的自定义小部件,以便在 android 和桌面上工作,例如实现 maxdigits 属性:

class IntegerInput(TextInput):
def __init__(self, **kwargs):
super(IntegerInput, self).__init__(**kwargs)
self.input_type = 'number'

def insert_text(self, substring, from_undo=False):
if substring.isnumeric():
if hasattr(self, "maxdigits"):
if len(self.text) < self.maxdigits:
return super(IntegerInput,self).insert_text(substring, from_undo=from_undo)
else:
return super(IntegerInput, self).insert_text(substring, from_undo=from_undo)

关于android - 为我的 kivy app python 设置一个数字键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37699237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com