Марк Филатов
Знаток
(279)
1 месяц назад
Вы можете использовать метод get() для получения текста из виджета Entry. Затем вы можете проверить, удовлетворяет ли текст определенным условиям. Например, чтобы проверить, является ли текст числом и больше 0, вы можете использовать следующий код:
text = entry2.get()
if text.isdigit() and int(text) > 0:
# текст является числом и больше 0
else:
# текст не является числом или меньше или равен 0
Чтобы проверить, пусто ли поле ввода или равно 0, вы можете использовать следующий код:
text = entry3.get()
if not text or text == '0':
# поле ввода пусто или равно 0
else:
# поле ввода не пусто и не равно 0
Вы можете добавить эти проверки в функцию value и вызывать box.showerror для отображения сообщения об ошибке в случае неправильного ввода. Например:
def value():
text = entry2.get()
if not (text.isdigit() and int(text) > 0):
box.showerror('Ошибка', 'Цена должна быть числом больше 0')
return
text = entry3.get()
if not (not text or text == '0'):
box.showerror('Ошибка', 'Масса для покупки должна быть пустой или равной 0')
return
# продолжить расчет стоимости
Вопрос заключается в следующем: Как проверять, что пользователь ввёл в Entry? Условно, во 2 колонке значение должно быть числом и больше 0. В 3 колонке 0 или пустая ячейка (я так подозреваю, что None?), если человек не хочет приобрести данный фрукт, и условие больше либо равно 0, соответственно.
В случае неправильного ввода я уже подготовил messagebox, но не знаю как правильно организовать 9 строку с def, который вызывается кнопкой в 57 строке.
Если разбираетесь в tkinter, буду благодарен за Вашу помощь!