如何将 Tcl 列表框数字索引转换为其元素

发布于 2024-08-05 15:56:26 字数 170 浏览 5 评论 0原文

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

我知道我可以使用 .listbox curselection 来获取其索引;但是,我需要将其转换为字符串。谁能帮我解决这个问题吗?

谢谢你,

东风公司

I feel that this question has a simple answer; but, for the life of me, I could not figure it out. I am trying to convert a listbox selection to its string element so I can enter it into a database.

I understand that I can use .listbox curselection to get its index; however, I need to convert it into its string. Can anyone help me with this?

Thank you,

DFM

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一瞬间的火花 2024-08-12 15:56:26

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

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] 子命令一起使用,如上所示。

Here's a simple, working example...

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"

So, [.lb curselection] returns a list of the indices of the selected elements. To turn an index into the actual text of the item, you just need to use it with the [.lb get $index] subcommand, as shown above.

蓝天白云 2024-08-12 15:56:26

您应该获取tcl 和 tk 实用编程的副本。这是 tcl/tk 的“Camel Book”(盗用 perl 习语)。

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

set selectedText [list]
foreach selectedLine [$listbox curselection] {
     lappend selectedText [$listbox get $selectedLine ]
}

You should pickup a copy of Practical Programming in tcl and tk. I tis the "Camel Book" (to steal a perl idiom) of tcl/tk.

As to your question, what you want is:

set selectedText [list]
foreach selectedLine [$listbox curselection] {
     lappend selectedText [$listbox get $selectedLine ]
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文