A tk.Entry
не может быть легко преобразовано в целое число python. Когда вы попробуете str(tk.Entry)
, он вернет '!entry'
. При преобразовании строк в целые числа вы можете указать основу для преобразования, и int()
будет преобразовывать на основе базы (каламбур непреднамеренно). Для основы 10 у вас нет букв или символов, поэтому преобразовать '!entry'
в целое число невозможно. Вам нужно вызвать tk.Entry().get()
, который вернет строку всего в записи. Однако он вернет это мгновенно, не давая пользователю времени что-либо ввести, поэтому вы получите пустую строку ''
. Опять же, символ «ничего» не находится в базе 10, поэтому это вызовет ошибку. Вам нужно установить временную задержку перед проверкой, чтобы пользователь мог что-то ввести, или вы можете создать кнопку, которая вызывает функцию, которая проверяет, что вы хотите проверить при нажатии:
def check():
global s1, s2, s3
s1 = s1E.get()
s2 = s2E.get()
s3 = s3E.get()
butt1 = tk.Button(text='Submit numbers', command=check)
...
Это будет проверять и присвоить все значения в записях, когда пользователь нажимает кнопку, давая ему / ей время для ввода.