如何从tkinter文本小部件中删除所有内容?

And*_*rey 10 python tkinter

我正在为一些聊天程序的GUI工作.对于用户的输入我有Text()小部件,消息通过"Return"发送,之后我清理Text().但是,尽管我尝试了很难,但我无法删除Return按钮创建的最后一个"\n".

这是我这部分的代码:

def Send(Event):
   MSG_to_send=Tex2.get("1.0",END)
   client.send(MSG_to_send)
   Tex2.delete("1.0",END)
Run Code Online (Sandbox Code Playgroud)

期待优惠)

Bry*_*ley 7

很可能你的问题是你的绑定是插入换行符之前发生的.您删除了所有内容,但随后插入了换行符.这是由于文本窗口小部件的工作原理 - 窗口小部件绑定在类绑定之前发生,而类绑定是用户输入实际插入窗口小部件的位置.

解决方案可能会调整绑定以类绑定之后发生(例如,通过绑定<KeyRelease>或调整绑定标记).但是,如果没有看到你如何进行绑定,我就不可能确定这是你的问题.

另一个问题是,当你得到文本(带Tex2.get("1.0",END))时,你可能会获得比你预期的更多的文本.tkinter文本小部件保证小部件中的最后一个字符后面始终有换行符.要获得用户在没有此换行符时输入的内容,请使用Tex2.get("1.0","end-1c").(可选)您可能希望从文本窗口小部件中删除所有尾随空格,然后再将其发送到客户端.