2016-04-26 10 views
1

Tclでは、スピンボックスコマンドで単純なパーセント置換(%d)を使用して、上または下ボタンがプッシュされたかどうかを知ることができます:tkinter:アップまたはダウンボタンが押されたかどうかをスピンボックスに表示する方法

spinbox .datespin -width 9 -command { 
    set way %d 
    datespin $way %W 
} 

私はまだ%d置換を好きとは思われないTkinterではスピン・ボックス、(それは私に構文エラーが発生します)で発生する同じものを取得する方法を参照しようとしています。これまでに見たtkinterのドキュメントは役に立ちませんでした。誰かがアップボタンまたはダウンボタンが押されたかどうかを明らかにするためにスピンボックスを取得する方法を教えてもらえますか?

答えて

1

私はこの他に何か研究していました。これは古い質問ですが、回答が見つからない場合に備えて、私は答えてもよいと思いました。

ユニバーサルウィジェットの "register"メソッド(つまり、このメソッドを任意のウィジェットで呼び出すことができます)を使用して、パーセント置換を使用するためにPython関数をTclラッパーにラップする必要があります。 (側面として、Entryウィジェットで働くvalidateコマンドを得るために同じことをしなければなりません。)

%置換をあなたのコールバックに送るために、単に呼び出し可能ではなくタプルを指定します。タプルの要素としてのあなたの置換(下記の例を参照)。

import tkinter as tk 

root = tk.Tk() 

def up_or_down(direction): 
    print(direction) 

tcl_up_or_down = root.register(up_or_down) 

spinbox = tk.Spinbox(root, from_=0, to=10, command=(tcl_up_or_down, '%d')) 
spinbox.grid() 

root.mainloop() 

関連する問題