我在画布上创建并显示了一组线:
.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
我想为每种颜色设置复选框/单独按钮,通过它我可以控制应该显示颜色的线条。 例如:如果仅选中红色和蓝色复选框,则显示红色和蓝色并隐藏绿线。
我可以使用标签和绑定操作来实现此功能吗?
答案 0 :(得分:0)
是的,使用画布很容易实现。您可以将对象或对象集合(通过标记)的状态设置为“隐藏”以使项目不可见,或将“正常”设置为使其再次可见。
答案 1 :(得分: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
}
}