Проверка номера в python не работает, как я ожидал - PullRequest
0 голосов
/ 19 июня 2020

В поле ввода мне нужно ограничить его использование числами от 1 до 999. Это работает с первой попытки, но не позволяет вводить что-либо с первой попытки. Затем мне разрешается вводить текст в поле ввода при втором нажатии цифровой клавиши и разрешать любое число внутри него. Я использую Python и библиотеку tkinter.

def validate():
    for i in range(1,999):
        if 1 <= i <= 999:
            return True
        else:
            return False

textBox.config(validate="key", validatecommand=(validate, reg, "%P"))

В идеале он не позволял мне вводить что-либо ниже 1 или выше 999.

EDIT Я немного обновил свой код (извините, я новичок) и он все еще не работает.

def validate(textboxAsInt):
    if textboxAsInt< 1:
        return textboxAsInt== 1
    elif textboxAsInt> 999:
        return textboxAsInt== 999

textbox.config(validate="key", validatecommand=(validate, reg, "%P"))

textboxAsString = TextBox.get()
textboxAsInt = int(float(textboxAsString))

1 Ответ

0 голосов
/ 19 июня 2020

Думаю, вы хотите:

def validate(i):
    return 1 <= i <= 999

textBox.config(validate="key", validatecommand=(validate, reg, "%P"))
...