我创建了一个聊天服务器和客户端,它使用基本的套接字连接将消息发送到服务器,然后服务器将消息发送给所有连接的用户。这一切都是在命令行中使用print
完成的,因此下一步是使用Tk(Python 2.7)创建GUI。
我现在遇到的问题是在客户端显示收到的消息并进行包装。
起初我尝试使用一个列表框,它完全不同于显然无法在列表框上包装文本的事实。
其次,我尝试使用一个完全灾难的文本框,因为我找不到任何打印文本的方法而没有输入。
第三,我尝试了一个画布,它支持自动换行并且能够创建文本,但是在包装后正确打印的文本以及滚动条无法正常工作时出现了一些问题
那么这些问题是否可以解决,或者我是否完全错误地咆哮了,并且有一种非常简单的方法可以做到这一点?
这是我目前对Canvas的代码:
self.chatspace.create_text(5, i, text = recv_data, anchor=NW, width=175)
i = i + (((len(recv_data) / 175) + 1) * 15)
我意识到len()
返回字符串中的字符数而不是像素的长度。
很抱歉提出3个问题,我感到非常难过,我已经为此工作了4个小时。
答案 0 :(得分:3)
您应该使用文本小部件。要在窗口小部件中插入文本,请使用insert
方法:
The_widget.insert("end", "hello, world")
在所有Tkinter文档中都记录了这一点。例如,请参阅http://effbot.org/tkinterbook/text.htm#Tkinter.Text.insert-method