2012-08-14 6 views
7

ラベルウィジェットは改行しません。メッセージウィジェットはテキストの行折り返しを行いますが、強制的に正方形にします。ここに例があります。PythonでTkinterを使用して、ウィンドウの幅を埋める行折り返しのテキストを作成するにはどうすればよいですか?

from Tkinter import * 

root = Tk() 
root.title("hello") 

Message(root, text=48*'xxxxx ').grid(row=0, column=0, columnspan=3) 

Label(root, text='Name:').grid(row=1, column=0) 
Entry(root, width=50).grid(row=1, column=1) 
Button(root, text="?").grid(row=1, column=2) 

Button(root, text="Left").grid(row=2, column=0) 
Button(root, text="Center").grid(row=2, column=1) 
Button(root, text="Right").grid(row=2, column=2) 

root.mainloop() 

私は形状を変更するためにaspect=700を使用できることを知っているが、そのようなハードコーディングの数字は、私は避けるようにしようとしているものです。

答えて

17

Tkinterラベルウィジェットは折り返します。デフォルト設定でラッピングが行われていないことだけです。ラップするラベルのテキストを取得するには、「wraplength」パラメータを設定します。この単位は画面単位ですので、wraplength = 50を試して必要に応じて調整してください。また、LEFT、RIGHT、またはCENTERに "justify"を設定する必要があります。希望が役立ちます。

+0

ウィジェットがサイズを変更したときにラップ長を動的に変更できるように、ウィジェットにバインディングを設定することもできます。 –

+0

@ JimDenny、画面単位はどういう意味ですか?私はこれに新しいです。 – heretoinfinity