AttributeError:类型对象'Message'没有属性'get'
码:
root = Tk()
frame = Frame(root)
labelText = StringVar()
display = Label(frame, textvariable=labelText)
labelText.set("Connecting to the server...")
display.pack()
frame.pack()
display.update()
def Submit_Message(event):
Message_Get = Message.get()
print(Message_Get)
def run_code_1():
print("Enter Message to send!")
Message = StringVar()
Message = Text(root)
Submit_Data_Button = Button(root, text="Submit")
Submit_Data_Button.bind("<Button-1>", Submit_Message)
Submit_Data_Button.pack()
Message.pack(expand=YES, fill=BOTH)
run_code_1()
root.mainloop()
Tkinter回调中的异常回溯(最近一次调用最后一次):文件“C:\ Python \ lib \ tkinter__init __ . py”,第1699行,在调用中返回self.func(* args)文件“D:\ python_projects \ trial2.py “,第42行,在Submit_M中消息Message_Get = Message.get()AttributeError:类型对象'消息'没有属性'get'进程返回0(0x0)执行时间:5.439 s按任意键继续 . . .
2 回答
在你的def方法中,你需要说出消息是什么 . 您只能在方法之外执行此操作 . 消息尚未在Submit_Message方法中初始化,因此它没有任何属性 . 例如,您可以将其设为全局
在您的代码中,您将创建一个名为
Message
的局部变量 . 但是,Submit_Message
看不到那个局部变量 . 相反,它认为Message
是您使用from tkinter import *
导入的全局类如果您需要在其他上下文中访问本地
Message
变量,则需要通过在run_code_1
内添加global Message
来使其全局化 .