Python-Tkinterジオメトリレイアウト管理

7218 ワード

すべてのTkinterコンポーネントには、親アセンブリ領域全体のサブアセンブリのレイアウトを整理および管理するための専用のジオメトリ管理メソッドが含まれています.Tkinterでは、pack、grid、placeの3つのジオメトリ管理クラスがまったく異なります.
pack()
packジオメトリ管理はブロック方式で部品を組織し、高速生成インタフェース設計で広く採用され、いくつかのコンポーネントの簡単なレイアウトで、packを採用するコード量が最も少ない.packジオメトリマネージャは、コンポーネント作成生成の順序に従って、コンポーネントを親コンポーネントに追加します.同じアンカーポイント(anchor)を設定すると、コンポーネントのセットを1つの場所に隣接して配置できます.オプションを指定しない場合は、デフォルトで親フォームにコンポーネントを上から下に追加します.
pack()レイアウトを使用する一般的な式は、WidgetObjectです.pack(option, …)
packメソッドには、直接値を割り当てるか、辞書変数で変更できるoptionオプションがあります.
名前
説明
値範囲
expand
値がyesの場合、sideオプションは無効です.アセンブリが親アセンブリの中心に表示されます.fillオプションが「both」の場合、親コンポーネントの残りのスペースが埋め込まれます.
「yes」、自然数、「no」、0(デフォルトは「no」または0)
fill
x(y)方向の空間を埋め、属性side="top"または"bottom"の場合、x方向を埋めます.属性side=「left」または「right」の場合、「y」方向を塗りつぶす.expandオプションが「yes」の場合、親コンポーネントの残りのスペースが埋め込まれます.
「x」、「y」、「both」(デフォルトは選択対象)
ipadx, ipady
コンポーネントの内部にx(y)方向に塗りつぶされる空間の大きさ.デフォルトの単位は画素で、オプションの単位はc(センチメートル)、m(ミリメートル)、i(インチ)、p(プリンタの点、すなわち1/27インチ)で、値の後に1つ以上の接尾辞を付けることができます.
負以外の浮動小数点数(既定値0.0)
padx, pady
コンポーネントの外部にx(y)方向に塗りつぶされる空間の大きさは、デフォルトの単位は画素で、オプションの単位はc(センチメートル)、m(ミリメートル)、i(インチ)、p(プリンタの点、すなわち1/27インチ)であり、値の後に上記の接尾辞を付けることができます.
負以外の浮動小数点数(既定値0.0)
side
親コンポーネントのどちらにドッキングするかを定義します.
「top」、「bottom」、「left」、「right」(デフォルトは「top」)
before
このコンポーネントを選択したオブジェクトを作成する前にpackします.このコンポーネントを作成してから選択したコンポーネントを作成するのと同じです.
パック後のコンポーネントオブジェクト
after
このコンポーネントを選択したオブジェクトの作成後にpackするのは、選択したコンポーネントを作成してからこのコンポーネントを作成するのと同じです.
パック後のコンポーネントオブジェクト
in_
このコンポーネントを選択したコンポーネントのサブコンポーネントとして使用します.このコンポーネントを指定したmasterと同様に、選択したコンポーネントです.
パック後のコンポーネントオブジェクト
anchor
位置合わせ、左揃え「w」、右揃え「e」、上揃え「n」、下揃え「s」
「n」,「s」,「w」,「e」,「nw」,「sw」,「se」,「ne」,「center」(デフォルトは「center」)
注意:expand、fill、sideは相互に影響していることがわかります.
例:(デフォルトはfrom Tkinter import*)
単一のコンポーネントが親コンポーネントでいっぱいになります.
text = Text(root, …)
text.pack(expand=YES, fill=”both”)

Tkinterモジュールは、文字型小文字値、すなわちTkinter、YES=「yes」に等しい一連の大文字値を提供します.
マルチコンポーネントレイアウト(左から右):デフォルトのレイアウトは上から下へです.
btn = Button(root, …)
btn.pack(side=LEFT, padx=<chmetcnv unitname="C" sourcevalue="4" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"></chmetcnv>4c) #x     4  
Text(root, …).pack(side=LEFT)

packクラスには、次の関数があります.
関数名
説明
slaves()
このコンポーネントのすべてのサブコンポーネントオブジェクトをリストで返します.
propagate(boolean)
Trueに設定すると、親コンポーネントのジオメトリサイズは子コンポーネントによって決まります(既定値).逆は関係ありません.
info()
packが提供するオプションの対応する値を返します.
forget()
Unpackコンポーネントは、コンポーネントを非表示にし、既存の設定を無視してオブジェクトが存在し、pack(option,...)で表示できます.
location(x, y)
x,yはピクセル単位のポイントであり、関数はそのポイントがセルにあるかどうか、どのセルにあるかを返します.セルの行の座標を返します.(-1,-1)は、その中にないことを示します.
size()
コンポーネントに含まれるセルを返し、コンポーネントのサイズを明らかにします.
 grid()
gridジオメトリ管理は、テーブルのような構造の組織部品を採用しており、ダイアログボックスの設計やスクロールバーのあるフォームの効果が最も優れています.gridは行列を使用して位置を決定し、行列の交差点はセルです.各列の列の幅は、この列の最も広いセルによって決まります.各行の行の高さは、この行の一番高いセルによって決まります.コンポーネントはセル全体に満ちているわけではありません.セルの残りのスペースの使用を指定できます.これらの空間を空けたり、水平または垂直または2つの方向に埋めたりすることができます.複数のセルをより大きなスペースに接続することができます.この操作はスパンと呼ばれます.作成したセルは隣接する必要があります.
grid()レイアウトを使用する一般的な式は、WidgetObjectです.grid(option, …)
gridメソッドには、直接値を割り当てるか、辞書変数で変更できるoptionオプションがあります.
名前
説明
値範囲
column
コンポーネントが置かれているセルの列番号.
[ナチュラル](Natural)(初期の既定値は0で、その後加算)
columnspan
コンポーネントが配置されているセルから列方向のスパンを計算します.
自然数(初期の既定値は0)
ipadx, ipady
コンポーネントの内部にx(y)方向に塗りつぶされる空間の大きさ.デフォルトの単位は画素で、オプションの単位はc(センチメートル)、m(ミリメートル)、i(インチ)、p(プリンタの点、すなわち1/27インチ)で、値の後に1つ以上の接尾辞を付けることができます.
負以外の浮動小数点数(既定値0.0)
padx, pady
コンポーネントの外部にx(y)方向に塗りつぶされる空間の大きさは、デフォルトの単位は画素で、オプションの単位はc(センチメートル)、m(ミリメートル)、i(インチ)、p(プリンタの点、すなわち1/27インチ)であり、値の後に上記の接尾辞を付けることができます.
負以外の浮動小数点数(既定値0.0)
row
コンポーネントが置かれているセルの行番号.
[ナチュラル](Natural)(初期の既定値は0で、その後加算)
rowspan
コンポーネントが配置されているセルから行方向のスパンを計算します.
自然数(初期の既定値は0)
in_
このコンポーネントを選択したコンポーネントのサブコンポーネントとして使用します.このコンポーネントを指定したmasterと同様に、選択したコンポーネントです.
パック後のコンポーネントオブジェクト
sticky
コンポーネントは、セルの隅に隣接しています.
「n」,「s」,「w」,「e」,「nw」,「sw」,「se」,「ne」,「center」(デフォルトは「center」)
例:(デフォルトはfrom Tkinter import*)
単一のコンポーネントが親コンポーネントでいっぱいになります.
text = Text(root, …)
root.rowconfigure(0, weight=1)
root.columnconfigure (0, weight=1) #    , grid    pack  。

マルチコンポーネントレイアウト(スクロールバー):効果は3つのレイアウトで最も優れているに違いありません.
text = Text(root, …)
text.grid()
#   
sb = Scrollbar(root, …)
sb.grid(row=0, column=1, sticky='ns')
 text.configure(yscrollcommand=sb.set)
sb.configure(command=text.yview)
#   
sb = Scrollbar(root, orient='horizontal', …)
sb.grid(row=1, column=0, sticky='ew')
text.configure(xscrollcommand=sb.set)
sb.configure(command=text.xview)

gridクラスには、次の関数があります.
関数名
説明
slaves()
このコンポーネントのすべてのサブコンポーネントオブジェクトをリストで返します.
propagate(boolean)
Trueに設定すると、親コンポーネントのジオメトリサイズは子コンポーネントによって決まります(既定値).逆は関係ありません.
info()
packが提供するオプションの対応する値を返します.
forget()
Unpackコンポーネントは、コンポーネントを非表示にし、既存の設定を無視してオブジェクトが存在し、pack(option,...)で表示できます.
grid_remove ()
 
 
変換元:
http://purpen.iteye.com/blog/74830