1

ttk 'Notebook' の単一のタブに複数のフレームを含めたい次のコード セクション (完全ではありません) があります。

win1 = Tk()    
n = ttk.Notebook(win1)

choice_frame = ttk.Frame(n, style="Black.TLabel")
choice_frame.grid(row=2, column=1, sticky="N,S,E,W", padx=1, pady=1)
choice_frame.grid_columnconfigure(0, weight=3)
choice_frame.grid_rowconfigure(0, weight=1)

frame_text = ttk.Frame(n, style="Black.TLabel")
frame_text.grid(row=0, column=0, sticky = "N")
frame_text.grid_columnconfigure(0, weight=3)
frame_text.grid_rowconfigure(0, weight=1)

frame_table = ttk.Frame(n, style="Black.TLabel")
frame_table.grid(row=2, column=0, padx=1, pady=1, sticky= " N, S, E, W ")
frame_table.grid_columnconfigure(0, weight=3)
frame_table.grid_rowconfigure(0, weight=1)

n.add(frame_table, text="One") # Would like same tab not two separate ones
n.add(choice_frame, text="One")
n.grid(sticky="N")

また、ウィンドウをドラッグして最大化したときに、すべての寸法を自動的に調整できるようにする方法があるかどうかも知りたいです。私は以前に試しました:

frame_table.grid_propagate(0)

しかし、これは高さと幅の寸法が固執することを許可していないようです。「テーブル」をウィンドウの中央に配置したいのですが、ウィンドウのサイズに合わせて調整します。

ご協力ありがとうございました!

4

1 に答える 1

1

grid_propagateあなたの問題の解決策ではありません。

各タブには単一のフレームのみを含めることができますが、その単一のフレームには必要なものを含めることができます。そのため、タブ用のコンテナー フレームを 1 つ作成してから、他のすべてのフレームをコンテナー フレームに配置します。このFrameクラスが存在する主な理由の 1 つは、レイアウトを容易にするウィジェット コンテナーを構築することです。

サイズ変更に関しては、問題はおそらく、メイン ウィンドウの行と列に重みを追加していないことです。gridフレームをノートブックに配置するために使用しているという事実にも関連している可能性があります。gridノートにアイテムを配置するために使用することはできません。

于 2012-06-27T18:04:36.553 に答える