如何处理网格[Tk]
how to handle the grid [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 :
所以我的问题是如何用 Grid not pack
填充箭头指示的 space
您可以使用网格的 -columnspan 选项来指定要使用的列数:
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 设置类似。它使所有
列宽度相同。
(第二次尝试) 在您的代码之后添加这个,如问题所示:
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
我创建了一个包含五个标签的网格 一行中的每个标签 但我希望每一行的大小都与前一个标签的最小大小相同
代码:
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 :
所以我的问题是如何用 Grid not pack
填充箭头指示的 space您可以使用网格的 -columnspan 选项来指定要使用的列数:
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 设置类似。它使所有 列宽度相同。
(第二次尝试) 在您的代码之后添加这个,如问题所示:
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