2017-09-19 3 views
1

私は2つのtk.LabelFrameウィジェットを持っていますが、幅は同じでなければなりません。私は、ウィジェット(とウィジェットの内部)を微調整しようとしましたが、これまでのところ何もできませんでした。それはあまりにも、あまりにも少なすぎます。たとえば、14が小さすぎると15が多すぎるし、14.5が受け入れられない(もちろん)。2つのLabelFramesを互いに整列させるにはどうすればよいですか?

GUI

現在のコード:

import tkinter as tk 
from tkinter import ttk 

root = tk.Tk() 

material_label_frame = tk.LabelFrame(root) 
material_label_frame.grid(row=0, column=0, sticky=tk.W) 

material_label = ttk.Label(material_label_frame, text='Material:') 
material_label.grid(row=0, column=0, padx=5, pady=5) 

material_combobox = ttk.Combobox(material_label_frame, width=15, values=['Gold', 'Silver']) 
material_combobox.grid(row=0, column=1, padx=5, pady=5, sticky=tk.W) 

weight_label_frame = tk.LabelFrame(root) 
weight_label_frame.grid(row=1, column=0, sticky=tk.W) 

weight_label = ttk.Label(weight_label_frame, text='Weight:') 
weight_label.grid(row=0, column=0, padx=(5, 14), pady=5) 

weight_entry = ttk.Entry(weight_label_frame, width=11) 
weight_entry.grid(row=0, column=1) 

weight_combobox = ttk.Combobox(weight_label_frame, width=3, values=['g', 'kg', 'oz']) 
weight_combobox.grid(row=0, column=2, padx=(0, 5), pady=5, sticky=tk.W) 

root.mainloop() 

誰かが私は問題を克服する助け場合、私はそれを本当に感謝。

+0

「14があまりにも多い」と言うと、14?パディング?幅? –

+0

私は特に念頭に置いていたことはありませんでした。私はパディングと幅の両方を変更しようとしましたが、成功しませんでした。私が本当に考えていないことの1つは、tk.W + tk.E(私はしばしば私のGUIでそれを使用します)を使用しているので、あなたの助けをもう一度お寄せいただきありがとうございます。 – mentalita

答えて

1

使用sticky="ew"に:このよう

枠を塗りつぶしてください。両方のフレームが同じ列にあり、両方とも同じsticky値を使用して列の両側に固定すると、それらは正確に整列します。

material_label_frame.grid(row=0, column=0, sticky="ew") 
weight_label_frame.grid(row=1, column=0, sticky="ew") 
+0

確かに、これは私の予想どおりの問題を解決しました。ありがとうございます。 – mentalita

0

場所の代わりにグリッド機能を使用してください。 Placeはもっと複雑ですが、より正確にデザインインターフェースに入れましょう。

weight_entry = ttk.Entry(weight_label_frame、幅= 11)

weight_entry.place(X = 10、Y = 75は、幅= 120)

+2

あなたは120の幅が正しい幅であることをどのように知っていますか?場所の問題は、使用されているフォントのサイズを知る必要があることです。解像度も知っている必要があります。 'place'はめったに正しい選択ではありません。 –

+0

「幅= 120」は単なる例でした。私はプロジェクトをやっていない、単なる提案です。与えられた問題については、たとえそれがまれであっても、問題を解決する可能性があると私は考えています。私もすべてのプロジェクトで使っていて、とてもうまくいっています(https://github.com/rafaelcalixto/PortfolioManager2)。 –

関連する問題