@Quvi

Почему не получается вывести значение поля Entry в Tkinter?

Есть код:
w = Tk()

def send_window():
    w = Tk()
    w.title("Новое окно")
    w.geometry("250x200")
    Label(w, text="Введите ID для отправки:", font=("Arial Bold", 15)).pack()
    entry_id = Entry(w).pack()
    Button(w, text="Отправить", command=clicked_send).pack()
    return entry_id

def clicked_send(entry_id):
    entry_text = entry_id.get()
    print(entry_text)

btn = Button(w, text="Отправка по Telegram", command=send_window)
btn.pack(anchor=W, fill="x")

У меня не получается вывести entry_id, выдается ошибка:
TypeError: clicked_send() missing 1 required positional argument: 'entry_id'
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
Код я не запускал, не тестил. Наверное
Button(w, text="Отправить", command=clicked_send).pack()
Здесь, ты передаешь парметром функцию у которой есть в свою очередь свой позиционный параметр entry_id. На его отсутствие он и ругается. Поправить можно либо lambda либо partial из functools

Button(w, text="Отправить", command= lambda: clicked_send(entry_id)).pack()

или так
Button(w, text="Отправить", command= partial(clicked_send, entry_id).pack()
предварительно импортировав partial.
Ответ написан
Ваш ответ на вопрос

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

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