AttributeError:类型对象“ Message”没有属性“ get”

时间:2018-09-11 17:47:30

标签: python python-3.x tkinter

  

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回调Traceback中的异常(最近一次调用最后一次):
  调用中的文件“ C:\ Python \ lib \ tkinter__init __。py”,行1699       返回self.func(* args)文件“ D:\ python_projects \ trial2.py”,第42行,在   提交留言       Message_Get = Message.get()AttributeError:类型对象'Message'没有属性'get'

     

进程返回0(0x0)执行时间:5.439 s按任意键   接着说 。 。

2 个答案:

答案 0 :(得分:0)

在def方法中,您需要说出消息是什么。您只能在方法之外执行此操作。消息尚未在Submit_Message方法中初始化,因此它没有任何属性。例如,您可以将其设置为全局

答案 1 :(得分:0)

在您的代码中,您正在创建一个名为Message local 变量。但是,Submit_Message无法看到该局部变量。相反,它认为Message是您通过from tkinter import *

导入的全局类。

如果需要在其他上下文中访问本地Message,则需要通过在global Message内添加run_code_1使其全局。