относительно новичок в кодировании, и в настоящее время я играю с tkinter в python, я использую текстовый виджет внутри функции и хочу отправить ввод из текстового поля в другую функцию. Моя глобальная переменная говорит undefined на уровне модуля, поэтому как я могу определить ее на уровне модуля, если она находится внутри функции?
Когда я нажимаю кнопку отправки электронной почты, я получаю следующее сообщение об ошибке: «NameError: имя 'user_message_entry' не определено»
Какие-либо предложения? Большое спасибо!
минимальное воспроизведение:
import tkinter as tk
root = tk.Tk()
root.geometry("500x500")
def send_email():
global user_message_entry
subject = ":)"
body = user_message_entry.get("1.0", "end")
message = f"subject: {subject}\n\n {body}"
print(message)
def feedback():
feedback_window = tk.Toplevel()
feedback_window.geometry("690x650")
message_frame = tk.Frame(feedback_window)
message_frame.grid(row=0, column=0, columnspan=3)
user_message_entry = tk.Text(message_frame, height=10, width=60)
user_message_entry.grid(row=0, column=0)
send_email_button = tk.Button(feedback_window, command=send_email,
height=20, width=20, bg="yellow", text="send email")
send_email_button.grid(row=1, column=0)
open_feedback_button = tk.Button(root, command=feedback, height=20, width=20, bg="yellow", text="open feedback window")
open_feedback_button.grid(row=1, column=0)
root.mainloop()
global user_message_entry
вfeedback()
. - person acw1668   schedule 07.05.2020global user_message_entry
по-прежнему говорит, что на уровне модуля не определено. Как я мог это отсортировать? - person Kevin Nisbet   schedule 07.05.2020send_email()
. - person acw1668   schedule 07.05.2020def send_mail()
наdef send_mail(entry)
. Тогдаsend_email_button = tk.Button(..., command=lambda: send_email(user_message_entry), ...)
. - person acw1668   schedule 07.05.2020