2017-06-07 5 views
0

後で処理するためにたくさんのファイルを指定するGUIを作成したいとします(ダースファイルをコマンドラインで解析するのはちょうどPITAです)。Tkinterグループ化ボタンとlables

これで、可読性を高めるためにlableとボタンをグループ化したいと考えています。

私はそのようなものを試してみた:それらが均等にすべての方向に行くので、

DC1_path_label = Label(window_fine_DC, text = "Please specify the path of DC 1:", relief=RAISED) 
DC1_B = Tkinter.Button(window_fine_DC, textvariable = DC_path1, command = setDC1) 
DC2_path_label = Label(window_fine_DC, text="Please specify the path of DC 2:", relief=RAISED) 
DC2_B = Tkinter.Button(window_fine_DC, textvariable=DC_path2, command=setDC2) 

DC1_path_label.grid(row = 0, column = 1) 
DC1_B.grid(row = 1, column = 1) 
DC2_path_label.grid(row = 3, column = 1) 
DC2_B.grid(row = 4, column = 1) 

をしかし、効果がないようです、またパディングは、いずれかの偉大なことを仕事いけません。

私たちがいる間に、古いものを閉じるより新しいウィンドウを開くよりもエレガントな方法がありますか?私はあなたが必要なものと考えてい

申し訳

これは愚かな質問であれば、私はパイソン/ GUIのものとかなり新しいよ...

答えて

0

はあなたのpadxおよび/またはpadytupleを提供することです。

このように各側にパディングを指定できます。

ここでは例としてpadyを使用して、片側のみにパディングを提供する方法を示します。上部のラベルが上部にどのようにパディングされているのか、下部のボタンは下部にパディングされていないことに注目してください。

from tkinter import * 

root = Tk() 

DC1_path_label = Label(root, text = "Please specify the path of DC 1:", relief=RAISED) 
DC1_B = Button(root) 
DC2_path_label = Label(root, text="Please specify the path of DC 2:", relief=RAISED) 
DC2_B = Button(root) 

DC1_path_label.grid(row = 0, column = 1, pady = (10, 0)) 
DC1_B.grid(row = 1, column = 1, pady = (10, 0)) 
DC2_path_label.grid(row = 3, column = 1, pady = (10, 0)) 
DC2_B.grid(row = 4, column = 1, pady = (10, 0)) 

root.mainloop() 

結果:

enter image description here

更新:

限り、あなたのウィンドウの変更などがあるものを操作し、コンテンツを交換するためのいくつかのオプションがあります

destroy()ウィジェットを作成して新しいウィジェットを作成できます。これは私をよりエレガントなものにします。それはあなたが窓を開いたままにすることができます。

現在のウィジェットのテキストを変更したり、一連の設定でグリッドを再配置するために使用できるいくつかの設定オプションがあります。これは私にも優雅さを与えません。

+0

ありがとうございます。padx/pady用のタプルは素晴らしいです。 面白いことに、私は約18程度を置くとGUIに要素がありませんでした。他の要素をコメントアウトすることで、欠けているものを得ることができました... にもかかわらず、あなたのソリューションは.packでもうまくいきますこれはGUIの要素を欠場しないので、私はそれを代わりに使用します。 –