Tkinterでウィジェット間に罫線を表示したいので、次のようにフレームを配置しました。
Python
1import tkinter as tk 2 3win = tk.Tk() 4 5win.rowconfigure(0, weight=1) 6win.columnconfigure(0, weight=1) 7 8f0 = tk.Frame(win) 9f0.grid(sticky="nsew") 10 11f0.rowconfigure((0,1,2), weight=1) 12f0.columnconfigure(0, weight=1) 13 14f1 = tk.Frame(f0, relief="solid", bd=1) 15f1.grid(row=0, column=0, sticky="nsew") 16f2 = tk.Frame(f0, relief="solid", bd=1) 17f2.grid(row=1, column=0, sticky="nsew") 18f3 = tk.Frame(f0, relief="solid", bd=1) 19f3.grid(row=2, column=0, sticky="nsew") 20 21f1.rowconfigure(0, weight=1) 22f1.columnconfigure(1, weight=1) 23f2.rowconfigure(0, weight=1) 24f2.columnconfigure(1, weight=1) 25f3.rowconfigure(0, weight=1) 26f3.columnconfigure(1, weight=1) 27 28l1 = tk.Label(f1, text="a"*10) 29l1.grid(row=0, column=0, sticky="nsew") 30l2 = tk.Label(f2, text="a"*20) 31l2.grid(row=0, column=0, sticky="nsew") 32l3 = tk.Label(f3, text="a"*30) 33l3.grid(row=0, column=0, sticky="nsew") 34 35e1 = tk.Entry(f1) 36e1.grid(row=0, column=1, sticky="nsew") 37e2 = tk.Entry(f2) 38e2.grid(row=0, column=1, sticky="nsew") 39e3 = tk.Entry(f3) 40e3.grid(row=0, column=1, sticky="nsew") 41 42win.mainloop()
実行結果
ここでエントリ(テキストボックス)の開始端を3つとも揃えたいのですが、
行ごと(可能であれば格子状)に罫線を表示しながら揃えることができません。
理想としては、下のコードのようにラベルテキストが最も長いものの末尾に揃えたいです。
可能でしょうか?
外枠の罫線表示でウィジェットを揃えて配置。
Python
1import tkinter as tk 2 3win = tk.Tk() 4 5win.rowconfigure(0, weight=1) 6win.columnconfigure(0, weight=1) 7 8f0 = tk.Frame(win) # フレームの内側にreliefは設定できない・・・? 9f0.grid(sticky="nsew") 10 11f0.rowconfigure((0,1,2), weight=1) 12f0.columnconfigure(1, weight=1) 13 14l1 = tk.Label(f0, text="a"*10) 15l1.grid(row=0, column=0, sticky="nsw") 16l2 = tk.Label(f0, text="a"*20) 17l2.grid(row=1, column=0, sticky="nsw") 18l3 = tk.Label(f0, text="a"*30) 19l3.grid(row=2, column=0, sticky="nsw") 20 21e1 = tk.Entry(f0) 22e1.grid(row=0, column=1, sticky="nsew") 23e2 = tk.Entry(f0) 24e2.grid(row=1, column=1, sticky="nsew") 25e3 = tk.Entry(f0) 26e3.grid(row=2, column=1, sticky="nsew") 27 28win.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。