0

ツリービューウィジェット(z1)内に表示されるデータベース内のレコードを削除するには、次の手順を使用しています。

set z1 [ttk::treeview .c1.t1 -columns {first last} -show headings]

proc Dlt {} {
    global z1 z11
    sqlite3 db test.db
    db eval {
        DELETE From t1 Where First_Name = $z11 and Last_Name = $z11
    }
    db close
}

sqlステートメントの$z11は、ツリービューの選択である必要があります。残念ながら、ツリービューの選択と同じになるように変数を設定する方法がわかりません。インデックスと等しくなるように変数を設定できます。つまり、set z11 [$ z1 index [$z1selection]]です。これにより、ツリービュー選択のインデックスが得られます。ただし、ツリービュー選択の文字列値を取得しようとしています。

ツリービューの選択と等しくなるように変数を設定するための正しい構文を知っている人はいますか?

ありがとうございました、

4

2 に答える 2

3

ツリー内のアイテムの値を取得するには、itemツリーのサブコマンドを使用します。例えば:

set selection [.tree selection]
set text [.tree item $selection -text]

これはすべて、ツリービュー ウィジェットのマニュアル ページに記載されています。

于 2009-09-20T22:16:02.407 に答える
0

余談ですが、どのプラットフォームで作業していますか? Windows の場合、デバッグ目的で、「console show」コマンドをコードに追加して、対話型のコンソール ウィンドウを表示できます。これを開いた状態で、[puts] を使用して変数値を表示できます。したがって、"puts $text" (コード内から) を使用するだけで、テキスト変数の値を確認できます。

また、コンソールにコマンドを直接入力して、すぐに評価することもできます。多くの場合、コンソールで数分間過ごすことは非常に啓発的です。

Windows で実行していない場合、stdout に書き込まれたものはすべて元のシェル ウィンドウに表示されるため、"console show" コマンドも必要ありません。

于 2009-09-21T14:14:28.793 に答える