如何在Tcl / Tk中将复选框添加到树视图?

时间:2012-09-12 11:20:29

标签: tcl tk

我想在ttk :: treeview中添加Checkbox?

我阅读了一些文档,发现无法添加复选框以添加到ttk :: treeview。还有其他选择吗?

3 个答案:

答案 0 :(得分:1)

树视图小部件根本不够复杂,不是没有大量工作。 (你可能能够通过定义检查和未检查线条的样式并使用绑定在它们之间切换来对其进行近似...但这将是非常可怕和脆弱的。)是,这意味着你不能用它做任何事情,但这反过来也使得小部件的API更容易学习。这总是一个棘手的设计权衡。

你最好的选择可能是TkTreeCtrl,它可以做任何你可能想要用树(或表格或网格)小部件做的事情。永远。据我所知(不是它的用户),使用起来相当棘手;我听说它向我推荐TkTreeCtrl总是用额外的代码包装,以将其API限制在你需要的特定用途。

答案 1 :(得分:1)

我在ttk:treeview中使用带有vanilla代码的复选框,但是在第一列中。

在树视图的第一列(称为#0或“树”)中,您可以像标签一样指定图像(让我们说icon_checked和icon_unchecked)。

$win.tv item $item -image icon_checked

图形部分非常多。对于不那么脏的部分:

  • 创建一个列表,其中包含树视图的每一行的状态(例如:“tvstatus”{0 0 0 1 0})
  • 创建一个程序 “tv_refresh”根据列表“tvstatus”
  • 更新每一行
  • 在树视图上创建一个绑定: 1更改列表“tvstatus”中的一个项的值 2调用“tv_refresh”

准确地向用户询问更具体的答案。

答案 2 :(得分:0)

我在comp.lang.tcl上找到了一个解决方案。见https://groups.google.com/d/msg/comp.lang.tcl/VwG4_7-1538/MWzhZiVcoecJ