如何处理Tcl Treeview选择

时间:2009-09-20 21:32:51

标签: select treeview tcl

我使用以下过程删除树视图窗口小部件(z1)中显示的数据库中的记录:

set z1 [ttk::treeview .c1.t1 -columns {first last} -show headings]

proc Dlt {} {
    global z1 z11
    sqlite3 db test.db
    db eval {
        DELETE From t1 Where First_Name = $z11 and Last_Name = $z11
    }
    db close
}
sql语句中的

$ z11应该是树视图选择。不幸的是,我无法弄清楚如何将变量设置为等于树视图选择。我可以设置一个变量等于索引,即:set z11 [$ z1 index [$ z1 selection]]。这将给我树视图选择的索引;但是,我试图获取树视图选择的字符串值。

有谁知道将变量设置为等于树视图选择的正确语法是什么?

谢谢,

2 个答案:

答案 0 :(得分:3)

要获取树中项目的值,您将使用树的item子命令。例如:

set selection [.tree selection]
set text [.tree item $selection -text]

man page for the treeview widget记录了这一切。

答案 1 :(得分:0)

顺便说一下,你在和哪个平台合作?如果是Windows,出于调试目的,可以在代码中添加“console show”命令以显示交互式控制台窗口。打开后,您可以使用[puts]显示变量值。因此,您可以使用“puts $ text”(在代码中)查看文本变量的值。

此外,您只需直接在控制台中输入命令即可立即进行评估。在许多情况下,在控制台中花费几分钟可能会非常有启发性。

如果您没有在Windows下运行,则甚至不需要“console show”命令,因为写入stdout的任何内容都应出现在原始shell窗口中。