Tkinter文本插入:“'Nonetype'对象没有属性'insert'

时间:2013-11-20 21:35:39

标签: python user-interface insert tkinter nonetype

一般来说编码相对较新,并且一直在尝试为Python创建一个简单的聊天客户端。尝试使用GUI,并遇到了下面显示的问题。

我有一个正常运行的GUI,并使用“example.get()”函数从输入框中检索字符串文本。程序然后将文本打印到命令提示符(只是为了证明它已被检索)然后应该将它放在一个文本框中,但是它给了我一个“Nonetype”错误。代码如下。有没有人知道如何解决这个问题?

由于

from tkinter import *

#Create GUI
root=Tk()
root.title("Chat test")
root.geometry("450x450+300+300")

#Declare variables
msg=StringVar()

#Get and post text to chat log
def postaction():
    msg1=msg.get()
    print(msg1)
    chatlog.insert(INSERT,msg1+'\n')
    root.mainloop()

#Build GUI components
chatlog=Text(root, height=10, state=DISABLED).pack(side=TOP, fill=X)
entry=Entry(root, textvariable=msg).pack(side=BOTTOM, fill=X)
button=Button(root, command=postaction, text="Button").pack()

1 个答案:

答案 0 :(得分:8)

窗口小部件的.pack方法始终返回None。因此,您需要将调用放在.pack上:

chatlog=Text(root, height=10, state=DISABLED)
chatlog.pack(side=TOP, fill=X)
entry=Entry(root, textvariable=msg)
entry.pack(side=BOTTOM, fill=X)
button=Button(root, command=postaction, text="Button")
button.pack()