2

我想在 ttk::treeview 添加复选框?

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

4

3 回答 3

1

我确实在 ttk:treeview 中使用带有香草代码的复选框,但在第一列中。

在树视图的第一列(称为 #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”

准确地向用户询问您想要获得更具体答案的内容。

于 2012-09-19T15:51:38.933 回答
1

树视图小部件根本不够复杂,无法做到这一点,并非没有大量工作。(您可以通过定义已检查和未检查行的外观并使用绑定在它们之间切换的样式来对其进行近似计算……但这将非常可怕和脆弱。)是的,这意味着您可以t 用它做所有事情,但这反过来也使小部件的 API 更易于学习。这总是一个棘手的设计权衡。

你最好的选择可能是TkTreeCtrl,它以能够做任何你想用树(或表格或网格)小部件做的事情而闻名。曾经。据我了解(不是它的用户),使用起来相当棘手;我听说它向我推荐 TkTreeCtrl 总是用额外的代码包装,以将其 API 限制为您需要的特定目的。

于 2012-09-12T19:37:48.797 回答
0

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

于 2014-02-02T19:31:54.877 回答