Проблема в том, что вы вызываете .get()
примерно через миллисекунду после создания виджета ввода, задолго до того, как пользователь даже увидит виджет ввода.
Как правило, для функций GUI необходимо запрашивать данные в тот момент, когда они им нужны. В вашем случае я бы сделал обратный вызов, специально разработанный для получения значения, а затем вызвал бы вашу функцию.
...
def do_delete():
num = entry1.get()
delete.delFile(num)
...
button1 = Button(root, text = "Remove", command=do_delete)
...
Это не единственное решение, но для меня это самое чистое. Вы можете установить команду на lambda
, которая вызывает get()
, но я считаю, что такой тип шаблона сложнее понять и сложнее отладить. Другим вариантом будет вызов get()
внутри delFile
, но он тесно связывает пользовательский интерфейс с объектом quizEdit
, что может быть или не быть желательным.