ホームページ >バックエンド開発 >Python チュートリアル >Tkinter のグリッド ジオメトリで重みはどのように機能しますか?

Tkinter のグリッド ジオメトリで重みはどのように機能しますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 11:35:021024ブラウズ

How Does Weight Function in Tkinter's Grid Geometry?

Tkinter では重みがどのような機能を実行しますか?

Tkinter は、ウィンドウ内でウィジェットを整理するための包括的なグリッド ジオメトリ マネージャーを提供します。グリッドの重要な属性の 1 つは「重み」オプションです。これは、コンテナ内に余剰スペースがある場合に列と行をどのように拡張するかを制御します。

デフォルトでは、各グリッド セルの重みは 0 であり、重みが 0 であることを示します。初期サイズを超えて成長することはありません。ただし、行または列にゼロ以外の重みを割り当てると、余分なスペースが利用可能になった場合にその拡張がトリガーされます。

実際の重みのデモ

次のコードを考えてみましょう。

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=0)
root.grid_columnconfigure(1, weight=0)

root.mainloop()

このコードは、f1 と f2 の 2 つのフレームが並んで配置されたウィンドウを作成します。列にウェイトが適用されないため、利用可能なスペースは未使用のままになります。

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=1)

root.mainloop()

最初の列にウェイト 1 を追加すると、ウィンドウが拡大されたときに余分なスペースが最初の列に分配されます。

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=3)

root.mainloop()

列に異なる重みを割り当てると、余分なスペースを比例配分できます。この例では、2 番目の列の重みは最初の列の 3 倍で、比率は 1:3 になります。

重みの力は、ウィンドウのサイズ変更に対する動的応答にあります。ウィンドウが拡大すると、ウィジェットは相対的な比率を維持しながら、使用可能なスペースに適応します。この柔軟性は、応答性が高く適応性のあるグラフィカル ユーザー インターフェイスを作成するために非常に重要です。

以上がTkinter のグリッド ジオメトリで重みはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。