Python 限制kivy';仅将文本输入为ascii字符

Python 限制kivy';仅将文本输入为ascii字符,python,kivy,textinput,Python,Kivy,Textinput,请问是否有一种方法可以使文本输入不允许非ascii字符。因此,当文本输入到TextInput中时,如果键入了非ascii字符,则不会将其添加到TextInput中。就像使用int filter一样,TextInput中只允许使用整数 请提供一个示例代码将非常有用。提前感谢一个可能的解决方案是在字符串(例如textinput)上使用.decode()和errors='ignore'标志。例如: "food ресторан".decode("ascii", errors='ignore') 将以

请问是否有一种方法可以使文本输入不允许非ascii字符。因此,当文本输入到TextInput中时,如果键入了非ascii字符,则不会将其添加到TextInput中。就像使用int filter一样,TextInput中只允许使用整数

请提供一个示例代码将非常有用。提前感谢

一个可能的解决方案是在字符串(例如textinput)上使用.decode()和errors='ignore'标志。例如:

"food ресторан".decode("ascii", errors='ignore')
将以静默方式将所有字符替换为ascii

编辑**更新了przyczajony建议使用过滤器的示例:

class AsciiInput(TextInput):

    def insert_text(self, string, from_undo=False):
        string = string.decode("ascii", errors='ignore')
        return super(AsciiInput, self).insert_text(string, from_undo=from_undo)

文档中描述了文本输入过滤,甚至有以下示例:


每当输入的字符串包含所需字符时,使用正则表达式进行检查(
[A-Za-z0-9]
)。如果通过,则返回字符串。

谢谢您的回复。但我仍然不清楚如何将它添加到d TextInput小部件中,我对kivy和python还是新手。你能告诉我怎么做吗。再次感谢…嘿,伙计们,我真的非常感谢你们的帮助。特别是@brmbigbang。谢谢你的例子,它们绝对完美。我需要它为我的应用程序,这是现在几乎完成。。。我必须说,堆栈溢出真的很厉害。再次感谢你