1

クリックしたときに列と行の値を返すボタンが必要です。私はコーディングしようとしましたが、うまくいきませんでした。

my_button = ttk.Button(mainframe)
my_button['command'] = return_func(my_button.grid_info()['row'])
my_button.grid(column=1, sticky=(W, E))

ボタンを自動的に作成しているため、列と行の値が変化しています。どうすれば修正できますか?

4

1 に答える 1

3

あなたが書くとき、あなたはその引数でreturn_func(inpt.grid_info()['row'])実行しています。return_funcあなたはこれをしたくありません。

代わりに、を使用lambda: return_func(inpt.grid_info()['row'])して関数呼び出しのコンテナ関数を作成します。そうlambdaすれば、関数は呼び出されたときに関数を実行します。

これを行う別の方法は次のようになります。

def command_function():
  return_func(inpt.grid_info()['row'])

my_button['command'] = command_function

私はあなたが議論を渡す必要があるかどうかを判断するのに十分に取り組んでいないtkので、それもあなたにとって問題になるかもしれません。

于 2012-06-21T05:50:12.527 に答える