我觉得这个问题有一个简单的答案;但是,对于我的一生,我无法弄清楚。我正在尝试将列表框选择转换为其字符串元素,以便可以将其输入数据库。
我知道我可以使用 .listbox curselection 来获取它的索引;但是,我需要将它转换成它的字符串。谁能帮我这个?
谢谢,
DFM
这是一个简单的工作示例...
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] 子命令一起使用,如上所示。
您应该在 tcl 和 tk中获取 Practical Programming 的副本。我是 tcl/tk 的“骆驼书”(窃取 perl 成语)。
至于你的问题,你想要的是:
set selectedText [list]
foreach selectedLine [$listbox curselection] {
lappend selectedText [$listbox get $selectedLine ]
}