4

Tkinter の「grid()」メソッドを使用して、Python プログラムの GUI を設計しています。

ウィジェットをマスター ウィンドウに合わせてスケーリングする方法はありますか?

以下に短い例を示します。

from Tkinter import *

master = Tk()

Label(master, text="This is a test").grid(row=0, column=0)

mytext1 = Text(master, width=30, height=5)
mytext1.grid(row=1, column=0)

mytext2 = Text(master, width=30, height=5)
mytext2.grid(row=3, column=0)

master.mainloop()

私がやりたいのは、マスター ウィンドウのサイズが変更されたときにウィジェットのサイズを調整することです。(このような小さな GUI の場合は問題ありませんが、ウィジェットが多数ある場合はこれが望ましいと言えます。)

どんな助けでも大歓迎です!

4

2 に答える 2

2

これは、クラスを使用せずに上記と同じです。クラスを使用すると、プログラムのサイズが大きくなるにつれて、よりクリーンで理にかなったものになります。ラベルの重みを 0 に設定していることに注意してください。これにより、ラベルが拡張されなくなります。これはデフォルトのオプションであるため、これを行う必要はありません。これは、何ができるかを示すためのものです。

グリッド レイアウト マネージャーの詳細: http://www.tkdocs.com/tutorial/grid.html

from Tkinter import *

master = Tk()

Label(master, text="This is a test").grid(row=0, column=0)

mytext1 = Text(master, width=30,height=5)
mytext1.grid(row=1, column=0, sticky="nsew")

mytext2 = Text(master, width=30,height=5)
mytext2.grid(row=2, column=0, sticky="nsew")

master.columnconfigure(0, weight=1)
master.rowconfigure(0, weight=0) # not needed, this is the default behavior
master.rowconfigure(1, weight=1)
master.rowconfigure(2, weight=1)

master.mainloop()
于 2013-08-16T09:47:43.913 に答える