我有一个问题,即正在制作的滚动条似乎在左边,我尝试了很多组合,以便将它向右移动。
我的代码如下所示:
set dataSheetFrame($k) [frame $curPath($k).frame1 -height 420 -relief groove]
#pack $dataSheetFrame($k)
scrollbar $dataSheetFrame($k).vscroll1 -highlightthickness 0 -orient vertical \
-width 15
set viewC1($k) [canvas $dataSheetFrame($k).canvas -height $cHeight1 -width $cWidth1 \
-yscrollcommand "$dataSheetFrame($k).vscroll1 set" \
-scrollregion "0 0 $cWidth1 $cHeight1" -bg black]
grid $dataSheetFrame($k).vscroll1 -in $dataSheetFrame($k) -row 0 -column 0 \
-rowspan 1 -columnspan 1 -sticky news
grid $viewC1($k) -in $dataSheetFrame($k) -row 0 -column 1 \
-rowspan 1 -columnspan 1 -sticky news
grid rowconfigure $dataSheetFrame($k) 0 -weight 1 -minsize 0
grid columnconfigure $dataSheetFrame($k) 0 -weight 1 -minsize 0
$viewC1($k) create line $cellWidth 0 $cellWidth $cHeight1 -width 3 -fill white
$viewC1($k) create line [expr $cellWidth + $dWidth] 0 \
[expr $cellWidth + $dWidth] $cHeight1 -width 1 -fill white
$viewC1($k) create line [expr $cellWidth + 2 * $dWidth] 0 \
[expr $cellWidth + 2 * $dWidth] $cHeight1 -width 1 -fill white
for {set i 0} {$i < [llength $cfgNames]} {incr i} {
set name [lindex $cfgNames $i]
$viewC1($k) create text [expr $cellWidth / 2] \
[expr $offsety + $i * 30 ] -anchor center -width 0 \
-text $name -justify center -fill white
set j 1
foreach process {Slow Typical Fast} {
set y [expr $offsety + $i * 30 ]
if {[info exists tpfValues($name,$process)]} {
$viewC1($k) create text [expr $cellWidth + \
$j * $dWidth - $dWidth / 2] $y \
-anchor center -width 0 -fill white \
-text $tpfValues($name,$process) \
-justify center
}
$viewC1($k) create line 0 [expr $y + 15] $cWidth1 \
[expr $y + 15] -width 3 -fill white
incr j
}
}
set offsetTpf [llength $cfgNames]
for {set i 0} {$i < [llength $tpfNames]} {incr i} {
set name [lindex $tpfNames $i]
$viewC1($k) create text [expr $cellWidth / 2] \
[expr $offsety + $offsetTpf * 30 ] -anchor center -width 0 \
-text $name -justify center -fill white
set j 1
foreach process {Slow Typical Fast} {
set y [expr $offsety + $offsetTpf * 30 ]
if {[info exists tpfValues($name,$process)]} {
$viewC1($k) create text [expr $cellWidth + \
$j * $dWidth - $dWidth / 2] $y \
-anchor center -width 0 -fill white \
-text $tpfValues($name,$process) \
-justify center
}
$viewC1($k) create line 0 [expr $y + 15] $cWidth1 \
[expr $y + 15] -width 3 -fill white
incr j
}
incr offsetTpf
}
$dataSheetFrame($k).vscroll1 configure -command "$viewC1($k) yview"
pack $dataSheetFrame($k) -side left
请帮帮我..
由于
答案 0 :(得分:3)
你把它放在第0列,所以它当然会出现在左边。您需要将其放在一个大于您放置画布的列的列号中。
当您刚刚学习如何使用网格几何管理器时,如果您实际在一张方格纸上绘制GUI,真的会有所帮助。这样做可以清楚地了解每个小部件进入哪个列,以及它们是否需要跨越其他行或列。