如何验证文本字段以使其只接受数字,python flet

问题描述 投票:0回答:1

我正在尝试验证文本字段,以便当用户使用键盘书写时它只接受数字,但我不知道该怎么做。

我只想输入数字的文本字段示例:

self.cedula = TextField(label="Cedula", hint_text="Ingresar Cedula", border_radius=30, border_color="#820000", width=300, height=60)

编辑:我发现如何知道用户是否写了数字或字母,现在我的问题如下

我希望else中所有不是数字的东西都被消除,但是我找不到办法,声明字段值为空但整个字段都被清空了

我附上了功能

def validarNumeros(self, campo, pagee):
    campo = campo
    pagee = pagee

    digitos = campo.value

    if digitos.isdigit():
        print("numero")
    else:
        print("letra")
        self.cedula.value = ""
        pagee.update()
python validation frameworks textfield flet
1个回答
0
投票

测验是 pueda ayudar 和 estoy empezando con Flet。他参与了功能和组合事件的使用模式更改,但不允许使用任何数字或十进制数。附加说明,如果您需要输入或验证之前的数字,请执行以下操作。 Espero que te ayude,

import flet
from flet import Page, TextField

ultimo_valor_valido = ""

def validarNumeros(campo, pagina):
    global ultimo_valor_valido
    digitos = campo.value
    if digitos == "":
        ultimo_valor_valido = ""
    else:
        try:
            float(digitos.replace(",", ""))
            ultimo_valor_valido = digitos
        except ValueError:
            campo.value = ultimo_valor_valido
            pagina.update()

def main(page: Page):
    importe = TextField(label="Monto", height=37, on_change=lambda e: validarNumeros(importe, page))
    page.add(importe)

flet.app(target=main)
© www.soinside.com 2019 - 2024. All rights reserved.