Python tkMessageBox.askyesnocancel - 3 варианта, логический вывод?
Документация, которую я видел на tkMessageBox
кажется, указывает на логическое возвращение для выбора пользователя на askyesnocancel
Диалог. Есть 3 варианта, так как логическое значение может правильно захватить выбор пользователя?
Я попробовал подход, показанный ниже, где "yes" возвращает "True", "no" возвращает "False", а "cancel" возвращает "отмену", но, похоже, это не работает. Выбор "нет" или "отмена", кажется, возвращается как "Ложь". У кого-нибудь есть идеи по этому поводу?
if tkMessageBox.askyesnocancel("Error", "Choose yes, no or cancel", default='yes')
...
...
...
elif "cancel":
return
else:
pass
1 ответ
Решение
На самом деле, нажав Cancel
возвращается None
, Просто проверьте это с этой строкой:
repr(tkMessageBox.askyesnocancel("wa", "wa"))
В заключение, "да" дает True
"Нет" дает False
и "Отмена" дает None
,
Проблема у вас там, что оба логическое значение None
является False
, тоже. Вы должны явно проверить None
:
if result is None:
...