Tk GUI Scrollbar



我有一个问题,滚动条似乎是在左边,我已经尝试了许多组合,以便将其移动到右边。

我的代码是这样的:

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列,所以它当然会出现在左边。您需要将它放在比您放置画布所在的列号大的列中。

当你正在学习如何使用网格几何管理器时,如果你在一张方格纸上画出GUI,它真的很有帮助。这样做可以使每个小部件放在哪个列中,以及它们是否需要跨越其他行或列。

相关内容

  • 没有找到相关文章

最新更新