Команда кнопки вызывается автоматически - PullRequest
3 голосов
/ 06 декабря 2010

По какой-то причине эта кнопка автоматически вызывает bot_analysis_frame без нажатия кнопки. Я предполагаю, что это потому, что command - это функция с аргументами.

Есть ли способ, чтобы кнопка вызывала только эту функцию и передавала необходимые переменные только при нажатии?

Button(topAnalysisFrame, text='OK', command=bot_analysis_frame(eventConditionL, eventBreakL)).pack(side=LEFT)

Ответы [ 2 ]

13 голосов
/ 06 декабря 2010

Прочитайте раздел здесь о прохождении обратных вызовов .

Вы сохраняете результат этой функции в аргументе команды, а не в самой функции.

Я верю этому:

command = lambda: bot_analysis_frame(eventConditionL,eventBreakL)

может работать на вас.

1 голос
/ 06 декабря 2010

Я почти уверен, что на это уже отвечали.Вместо этого:

Button(topAnalysisFrame,
       text='OK',
       command=bot_analysis_frame(eventConditionL,eventBreakL)).pack(side=LEFT)

Вы можете использовать лямбду следующим образом:

Button(topAnalysisFrame,
       text="OK",
       command=lambda: bot_analysis_frame(eventConditionL, eventBreakL)).pack(side=LEFT)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...