2016-06-01 6 views
0

は、私が行 で5つのラベル 各ラベルが含まれているグリッドを作成したが、私はそれぞれの行にしたい前の少なくともラベル1 coloneグリッド[Tkの]をどのように扱うか

コードのサイズと同じ大きさを持っています:

label .f0 -text "frame 0"\ 
    -relief groove \ 
    -borderwidth 2 \ 
    -background blue 
label .f1 -text "frame 1" \ 
    -relief groove \ 
    -borderwidth 2 \ 
    -background gray 
label .f2 -text "frame 2" \ 
    -relief groove \ 
    -borderwidth 2 \ 
    -background green 
label .f3 -text "frame 3" \ 
    -relief groove \ 
    -borderwidth 2 \ 
    -background yellow 
label .f4 -text "frame 4"\ 
    -relief groove \ 
    -borderwidth 2 \ 
    -background red 

grid .f0 -row 1 -column 1 -sticky ewns 
grid .f1 -row 2 -column 2 -sticky ewns 
grid .f2 -row 3 -column 3 -sticky ewns 
grid .f3 -row 4 -column 4 -sticky ew 
grid .f4 -row 5 -column 5 -sticky ew 

printScr:

enter image description here

だから私の質問は、矢印はあなたが使用するどのように多くの列を指定するグリッドに-columnspanオプションを使用することができます

答えて

2

を詰めるないグリッドで示していることを私はスペースを埋めることができる方法である。

grid .f0 -row 1 -column 1 -sticky ewns -columnspan 5 

参照:grid

編集:

foreach i {0 1 2 3 4} { 
    grid columnconfigure . $i -weight 1 -uniform labcol 
    grid .f$i -column $i -sticky ew -columnspan [expr {5-$i}] 
} 

これはPeterのminsize設定に似ています。すべての 列が同じ幅になります。

+0

を、正しく(私は 'に' -sticky w'を変更する作業です-sticky ew') –

+0

レイアウトエンジンは、各ウィジェットに1つ以上の行と1つ以上の列からなるボックスを与えます。 '-sticky'オプションは、必要以上のものがあるときにウィジェットがボックス内のスペースをどのように処理するかを示します。 –

1

は(第二はを試してみてください)質問のように、あなたのコードの後に​​これを追加します。

foreach index {1 2 3 4 5} { 
    grid columnconfigure . $index -minsize [winfo width .f0] 
} 

grid configure .f0 -columnspan 5 
grid configure .f1 -columnspan 4 
grid configure .f2 -columnspan 3 
grid configure .f3 -columnspan 2 

ドキュメント:foreachgridwinfo

+0

@AnsPiter:答えに返信するコードを表示する必要がある場合は、代わりに質問に書いてください。そうすれば、読みやすくなります。 –

+0

申し訳ありませんが、完全なコードを追加して 'configure'の役割を説明できます。なぜなら、私は' columnconfigure'との間で混乱しているからです。 –

+0

@AnsPiter:ここであなたのコードをすべてコピーする必要がありますか?コードの最後にコードを貼り付けてください。それは私のために働いたので、あなたのために働くはずです。 'grid configuration'と' grid columnconfigure 'の違いは、 'grid configure'は、スレーブがグリッドによってどのように管理されているかのオプションを変更するのに対し、' grid columnconfigure'はグリッド自体のオプションを変更します(特に、index *カラム)。最初に 'grid'コマンドでスレーブをグリッドに追加したときと同じように、' grid configure'を使って同じ種類の設定を行うことができます。 –

関連する問題