1

我在画布上创建并显示了一组线条:

.can create line 100 200 300 400 -fill red -tag red
.can create line 1000 200 1300 400 -fill green -tag green
.can create line 500 300 800 400 -fill blue -tag blue
.can create line 1100 200 3020 1400 -fill red -tag red

我想为每种颜色设置复选框/单独的按钮,通过这些按钮我可以控制应该显示哪种颜色的线条。eg:如果只勾选了红色和蓝色复选框,则显示红色和蓝色并隐藏绿色线条。

我可以使用标签和绑定操作来实现此功能吗?

4

2 回答 2

0

是的,这很容易通过画布实现。您可以将对象或对象集合的状态(通过标签)设置为“隐藏”以使项目不可见,或将其设置为“正常”以使其再次可见。

于 2013-08-14T14:32:53.117 回答
0

是的,以下代码可用于隐藏和显示带有“lineTag”标签的项目。

.canvas itemconfigure lineTag -state hidden
.canvas itemconfigure lineTag -state normal

只需绑定一个检查按钮即可发出这些命令来完成您的要求。

.canvas add checkbutton -label "Red Lines" -variable ::MyNameSpace::show_red_lines -command ::MyNameSpace::HideOrShowRed

proc ::MyNameSpace::HideOrShowRed { } {
    if { $::MyNameSpace::show_red_lines } {
        .canvas itemconfigure redLineTag -state normal
    } else {
        .canvas itemconfigure redLineTag -state hidden
    }
}
于 2015-12-23T02:02:45.583 回答