是什么原因导致“ _tkinter.TclError:无法调用“更新”命令:应用程序已被破坏”?

时间:2019-05-28 22:00:23

标签: python user-interface tkinter conda

我已经创建了一个聊天GUI。问题是,在pycharm外部无法正常工作。 “无法正常工作”是指它显示的字体不是我选择的字体。同样,该字体和显示框的大小也不是我选择的大小。使用此GUI的程序中显示的错误是标题中的错误。我认为conda可能对此负责,但我不确定。我对此是否正确,还是其他?还有我该如何解决呢?预先感谢!

import tkinter
window = tkinter.Tk()
window.geometry("430x720")
window.config(bg="#2b2929")

message_box = tkinter.Text(window, height=32, state="disabled") 
message_box.pack(side=tkinter.TOP, padx=15,pady=5, fill=tkinter.Y)
message_box.config(bg="#595959", fg="#ffffff", font=("Impact", 12))

input_user = tkinter.StringVar()
text_box = tkinter.Text(window, height=5)
text_box.pack(side=tkinter.BOTTOM,  padx=15, pady=8)
text_box.config(bg="#595959", fg="#ffffff", font=("Impact", 12))


def send_message(event):
    input_get = text_box.get('1.0', tkinter.END)
    if input_get.isspace():
        input_user.set('')
        text_box.delete('1.0', tkinter.END)
        return "break"

    message_box.configure(state='normal')
    message_box.insert(tkinter.INSERT, input_get)
    message_box.see("end")
    message_box.configure(state='disabled')
    input_user.set('')
    text_box.delete('1.0', tkinter.END)
    return "break"


text_box.bind("<Return>", send_message)
window.mainloop()

1 个答案:

答案 0 :(得分:0)

对我来说它有效,我只缩进最后一行。

import tkinter
window = tkinter.Tk()
window.geometry("430x720")
window.config(bg="#2b2929")

message_box = tkinter.Text(window, height=32, state="disabled") 
message_box.pack(side=tkinter.TOP, padx=15,pady=5, fill=tkinter.Y)
message_box.config(bg="#595959", fg="#ffffff", font=("Impact", 12))

input_user = tkinter.StringVar()
text_box = tkinter.Text(window, height=5)
text_box.pack(side=tkinter.BOTTOM,  padx=15, pady=8)
text_box.config(bg="#595959", fg="#ffffff", font=("Impact", 12))


def send_message(event):
    input_get = text_box.get('1.0', tkinter.END)
    if input_get.isspace():
        input_user.set('')
        text_box.delete('1.0', tkinter.END)
        return "break"

    message_box.configure(state='normal')
    message_box.insert(tkinter.INSERT, input_get)
    message_box.see("end")
    message_box.configure(state='disabled')
    input_user.set('')
    text_box.delete('1.0', tkinter.END)
    return "break"


text_box.bind("<Return>", send_message)
window.mainloop()

enter image description here