用于 MDTextField 的带有 Kivy / KivyMD 的数字键盘

Posted

技术标签:

【中文标题】用于 MDTextField 的带有 Kivy / KivyMD 的数字键盘【英文标题】:Numeric Keyboard with Kivy / KivyMD for MDTextField 【发布时间】:2021-11-29 18:31:10 【问题描述】:

如何使文本字段使用数字 android 键盘而不是带有所有字母的普通键盘? 注意:我正在使用 KivyMD MDTextFields 因此,当我单击以在文本字段中写入时,会出现这样的键盘:

Like in this picture

【问题讨论】:

看来 android 的数字键盘可以在 kivy 中使用,但我会查看有关它的更多信息,现在这个链接可能会有所帮助github.com/kivy/kivy/issues/7545 请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:

我遇到了同样的问题,我发现一篇文章说在你的 MDTextField 中使用input_type: 'number' 来打开安卓数字键盘!我正在再次编译我的代码以查看它是否检查。例如:

MDTextField:
            id: quantidade
            pos_hint: "center_x": .5, "center_y": .5
            input_type: 'number'
            hint_text: "Qtd."
            helper_text_mode: "on_error"
            helper_text: 'Insira uma quantidade (Apenas Números, "," e ".")'

【讨论】:

【参考方案2】:

在 py 文件中,我为自定义键盘创建了自己的类:

class CustomTextField(MDTextField):
    def __init__(self, *args, **kwargs):
        self.input_type = "number"
        self.input_type = "tel"
        self.input_filter = 'float'
        self.multiline = False
        super().__init__(**kwargs)

然后在KV文件中改行:

p4a.branch = master

到:

p4a.branch = develop

【讨论】:

以上是关于用于 MDTextField 的带有 Kivy / KivyMD 的数字键盘的主要内容,如果未能解决你的问题,请参考以下文章

无法在 MDGridLayout 中添加 kivymd 的 MDTextField

Kivy 无法使用 ScreenManager 获取文本输入

Kivy - 无法更改带有 id 的 .text

Python kivy(kivymd)如何从MD存储和加载数据

如何:main.py,带有 kivy 轮播代码的新类,kv 文件

Kivy Scatter z-index