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

Practical Programming in tcl および tkのコピーを入手する必要があります。私は tcl/tk の "Camel Book" (perl イディオムを盗むため) です。

あなたの質問に関して、あなたが望むのは:

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