0

我制作了一个聊天服务器和客户端,它使用基本的套接字连接将消息发送到服务器,然后将它们发送给所有连接的用户。这一切都是print在命令行中完成的,因此下一步是使用 Tk(Python 2.7)制作一个 GUI。

我现在遇到的问题是在客户端中显示收到的消息并进行包装。

起初,我尝试使用 Listbox,除了显然无法在 Listbox 上包装文本这一事实外,它工作得非常好。

其次,我尝试使用文本框,这完全是一场灾难,因为我找不到任何方法可以在不输入文本的情况下在其中打印文本。

第三,我尝试了一个画布,它确实支持自动换行并且能够创建文本,但是我在换行后在正确的位置打印文本以及滚动条不起作用时遇到了一些问题

.

那么这些问题中的任何一个都可以解决吗,还是我完全错误地吠叫了树,并且有一种非常简单的方法可以做到这一点?

这是我目前为 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 个小时。

4

1 回答 1

3

您应该使用文本小部件。要将文本插入小部件,请使用以下insert方法:

The_widget.insert("end", "hello, world")

这在所有 Tkinter 文档中都有记录。例如,请参阅http://effbot.org/tkinterbook/text.htm#Tkinter.Text.insert-method

于 2013-03-03T02:51:15.967 回答