0

我正在使用以下过程删除显示在树视图小部件 (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应该是treeview选择。不幸的是,我无法弄清楚如何将变量设置为等于树视图选择。我可以设置一个变量等于索引,即:set z11 [$z1 index [$z1 selection]]。这会给我树视图选择的索引;但是,我正在尝试获取树视图选择的字符串值。

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

谢谢,

4

2 回答 2

3

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

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

这都记录在treeview 小部件的手册页上

于 2009-09-20T22:16:02.407 回答
0

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

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

如果你不是在 Windows 下运行,你甚至不需要“console show”命令,因为任何写入标准输出的东西都应该出现在原始的 shell 窗口中。

于 2009-09-21T14:14:28.793 回答