2

我觉得这个问题有一个简单的答案;但是,对于我的一生,我无法弄清楚。我正在尝试将列表框选择转换为其字符串元素,以便可以将其输入数据库。

我知道我可以使用 .listbox curselection 来获取它的索引;但是,我需要将它转换成它的字符串。谁能帮我这个?

谢谢,

DFM

4

2 回答 2

3

这是一个简单的工作示例...

proc selectionMade {w} {
    # --- loop through each selected element
    foreach index [$w curselection] {
        puts "Index --> $index"
        puts "Text  --> [$w get $index]"
    }
}

catch {console show}
listbox .lb
bind .lb <<ListboxSelect>> {selectionMade %W}

pack .lb -fill both
.lb insert end "Line 1"
.lb insert end "Line 2"

因此,[.lb curselection] 返回所选元素的索引列表。要将索引转换为项目的实际文本,您只需将其与 [.lb get $index] 子命令一起使用,如上所示。

于 2009-09-24T23:52:38.223 回答
2

您应该在 tcl 和 tk中获取 Practical Programming 的副本。我是 tcl/tk 的“骆驼书”(窃取 perl 成语)。

至于你的问题,你想要的是:

set selectedText [list]
foreach selectedLine [$listbox curselection] {
     lappend selectedText [$listbox get $selectedLine ]
}
于 2009-09-24T19:48:31.447 回答