2012-03-20 11 views
1

通常のファイルメニューでプログラムをコーディングしようとしています。 (例えば、ファイル、編集、ビューなど)。ファイルメニューからイベントを処理する

私は自分のステータスバー(ラベル)を更新するために、そのメニューで取る行動が必要です。

問題は、私が今セットアップしている方法です、私はそれがコマンドを実行していると信じて、何をすべきかのように結果を取ろうとしています。

fileMenu.add_command(label="Insert", command=self.statusUpdater(statusLabel,"Insert Triggered") 

と関数statusUpdaterは、次のように定義されます:

は、現在のメニュー項目は、そのように定義され

だから問題は、右のプログラムの開始時に、ある
def statusUpdater(self,status,commandName): 

    status.config(text=commandName) 
    status.update_idletasks() 

、ステータスが「Insert Triggered」に変わります。私が実際に "挿入"をクリックした後に、それが唯一幸せになるのは

私は別の場所で見たことがありますか?イベントのイベントを渡して処理する必要があるようです。

誰かが私に尋ねることをする一般的で基本的な機能を提供できますか?私は問題がコマンド機能に付随する()にあると思うが、私は引数を渡す他の方法を知らない。

私が必要とするのは、clickイベントで呼び出され、どのfileMenuコマンドがそれをトリガしたかを知る関数です。

ありがとうございます!

答えて

0

コマンドは関数を参照します。引数を渡したい場合はラムダを指定できます:

...command=lambda l=statusLabel, self.statusUpdater(l, "Insert Triggered")) 
関連する問題