@lnnaannl

Как победить ошибку «name is not defined»?

Создаю программу, где будет окошко, в которое пользователь пишет текст, и далее нажимает на кнопку " Ввод ", и все, что он написал, отправляется мне в телегу.

Код:

#telegram

telegram_send.send( messages = ut )


#stiles

root = Tk()

root.title('Kontra')
root.wm_attributes('-alpha', 1.0)
root.geometry('1000x1000')
root.resizable(width=True, height=True)

root[ 'bg' ] = '#ccc'

#to-text

user_text = Entry( root, font = 'Consolas', relief = 'solid',
 bg = 'silver')

#command

def conn():
 
 ut = user_text.get()

 

btn = Button( text = 'Войти', command = conn )


user_text.pack()
btn.pack()

Ошибка:

telegram_send.send( messages = ut )
NameError: name 'ut' is not defined
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 1
@o5a
1. Чтобы интерфейс работал, нужно запустить цикл (mainloop)
...
btn.pack()

root.mainloop()

А чтобы продолжить работать с телеграмом потом (если нужен его цикл), можно прекратить работу tk, вызвав root.destroy()
2. Свою функцию messages = ut нужно вызывать уже после того, как переменная ut установлена. Например, в той же самой функции conn:
def conn():
    ut = user_text.get()
    root.destroy()
    telegram_send.send( messages = ut )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы