【发布时间】:2014-08-23 00:08:47
【问题描述】:
我有一个 GUI,它有几个复选按钮和旁边显示的复选按钮的信息。信息来自一系列列表。数组中的每个元素都有与其相关联的多个信息类别。我想把这些信息放在一个易于查看的 GUI 中。目前 GUI 有以下代码。按钮现在没有功能,稍后会出现,但我想弄清楚的是如何在每个类别之间添加边框线,基本上让整个东西看起来更像一个表格:
set tics(ticket1) [list "status1" "ec1"]
set tics(ticket2) [list "status2" "ec2"]
set tics(ticket3) [list "status3" "ec3"]
set cv [canvas .cs -yscrollcommand [list .sy set]]
set intro [frame $cv.intro]
set lab [label $intro.lab -text "Please click block"]
wm title . "Warning!"
set frame [frame $cv.frame ]
set l1 [label $frame.l1 -text "Block" -padx $padding]
set l2 [label $frame.l2 -text "Status" -padx $padding]
set l3 [label $frame.l3 -text "Effort Category" -padx $padding]
set sy [scrollbar .sy -orient v -command [list $cv yview]]
pack $cv -expand 1 -fill both -side left
pack $intro $lab
pack $sy -side right -fill y
grid $l1 -row 0 -column 0 -ipadx $padding -sticky $stickiness
grid $l2 -row 0 -column 1 -ipadx $padding -sticky $stickiness
grid $l3 -row 0 -column 2 -ipadx $padding -sticky $stickiness
set row 1
foreach tic [array names tics] {
set a [checkbutton $frame.f$tic -text $tic]
set c 0
foreach element $tics($tic) {
set t$c [label $frame.l$tic$c -text $element -padx $padding]
set c [expr $c+1]
}
grid $a -row $row -column 0 -ipadx $padding -sticky $stickiness
grid $t0 -row $row -column 1 -ipadx $padding -sticky $stickiness
grid $t1 -row $row -column 2 -ipadx $padding -sticky $stickiness
set row [expr $row+1]
}
pack $frame
【问题讨论】:
-
您能否提供一下您希望这些“边界线”看起来如何的视觉效果?
-
您应该考虑使用
incr row将row的值增加一...
标签: user-interface tcl border tk