ホームページ >バックエンド開発 >Python チュートリアル >Tkinter でジオメトリを効果的に管理して GUI を整理するにはどうすればよいですか?

Tkinter でジオメトリを効果的に管理して GUI を整理するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-07 04:50:15935ブラウズ

How Can I Effectively Manage Geometry in Tkinter to Organize My GUI?

Tkinter - ジオメトリ管理の基礎

Tkinter に関する多くの質問は、エラーに関するものではなく、むしろグラフィカル ユーザー インターフェイスの編成方法 ( GUI)。この記事の目的は、Tkinter のジオメトリ管理の基礎を理解し、初心者が GUI を整理できるようにガイドすることです。

  • wm_geometry : メインウィンドウのサイズと位置を指定します。
  • wm_minsize、wm_maxsize: 最小または最大サイズの制約を設定します。
  • wm_resizable: ユーザーによるサイズ変更を有効または無効にします。
  • wm_attributes:最上位または全画面などの属性を構成します。
  • pack_propagate、grid_propagate: 子ウィジェットの要求された幅と高さを無視します。

配置Children

Tkinter は、トップレベル内に子ウィジェットを配置するための 3 つの主要なジオメトリ マネージャーを提供します。

  • The Packer: ウィジェットのエッジの周囲にウィジェットを配置します。親。
  • Placer: 親内のウィジェットの正確なサイズと位置を修正します。
  • Gridder: 親内の行と列にウィジェットを配置します。

マネージャー固有機能

各マネージャーは独自の機能を提供します:

パッカー:

  • fill: ストレッチ ウィジェット水平方向、垂直方向、または
  • expand: 親の使用可能なスペースを埋めます。
  • side: ウィジェットが配置される親の側を制御します。
  • アンカー: ウィジェットをその中に配置しますspace.

Placer:

  • relheight、relwidth: 親を基準としたウィジェットの寸法を指定します。
  • relx、rely: ウィジェットを相対的に配置します親のセンター。

グリダー:

  • columnspan、rowspan: ウィジェットを複数の列にまたがる、またはrows.
  • sticky: セル内にウィジェットを配置します。
  • grid_remove: 構成を失わずにウィジェットを削除します。

例使用法

3 つのマネージャーの使用方法を示す次の例を考えてみましょう。

import tkinter as tk

root = tk.Tk()

holderframe = tk.Frame(root, bg='red')
holderframe.pack()

display = tk.Frame(holderframe, width=600, height=25, bg='green')
display2 = tk.Frame(holderframe, width=300, height=145, bg='orange')
display3 = tk.Frame(holderframe, width=300, height=300, bg='black')
display4 = tk.Frame(holderframe, width=300, height=20, bg='yellow')
display5 = tk.Frame(holderframe, bg='purple')

# Arrange using Pack within `display`
display.pack()
b = tk.Button(display, width=10, text='b')
b1 = tk.Button(display, width=10, text='b1')
l = tk.Label(display, text='My_Layout', bg='grey')
b.pack(side='left')
b1.pack(side='left')
l.pack(fill='both', expand=1)

# Arrange using Grid within `display2`
display2.grid(column=0, row=1, sticky='n')
lab = tk.Label(display2, text='test2')
lab.grid(column=0, row=0)
# ... additional labels arranged in rows and columns using grid()

# Arrange using Place for `display5`
display5.place(x=0, y=170, relwidth=0.5, height=20)

root.mainloop()

結論

理解することでTkinter のジオメトリ管理の基本と各マネージャーの機能を理解することで、子オブジェクトを効果的に整理および配置できます。機能的で見た目にも美しい GUI を作成するためのウィジェット。

以上がTkinter でジオメトリを効果的に管理して GUI を整理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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