0

基本的なソケット接続を使用してサーバーにメッセージを送信し、サーバーが接続されているすべてのユーザーにメッセージを送信するチャットサーバーとクライアントを作成しました。これはすべて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時間取り組んできました。

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 に答える