この質問には簡単な答えがあると思います。しかし、私の人生では、それを理解できませんでした。データベースに入力できるように、リストボックスの選択を文字列要素に変換しようとしています。
.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] サブコマンドを使用するだけです。
Practical Programming in tcl および tkのコピーを入手する必要があります。私は tcl/tk の "Camel Book" (perl イディオムを盗むため) です。
あなたの質問に関して、あなたが望むのは:
set selectedText [list]
foreach selectedLine [$listbox curselection] {
lappend selectedText [$listbox get $selectedLine ]
}