2013-04-03 3 views
0

Я использую черты EPD для базового интерфейса графического интерфейса. Я могу выскочить окно настроек с помощью кода, как это:Реагирование на кнопку Нажатие пользователем в виде EPD Traits?

settings_w.configure_traits(kind="livemodal") 

Окно имеет «ОК» и «Отмена» кнопки, и я хочу сделать что-то другое в зависимости от того, какая кнопка была нажата, чтобы выйти из окна , Похоже, это должно быть просто, но я не могу понять, как это установить.

Теоретически я хотел бы сделать что-то вроде этого:

# Display the settings widget 
settings_w.configure_traits(kind="livemodal") 

if settings_w.CancelButtonPressed: 
    pass 
else: 
    print "I got the input" 

Но дайте мне знать, если есть лучший или более правильный способ сделать это.

Также FWIW: вот свойства зрения моего окна настроек со стандартным OK и Отмена:

view = View( 
    settings_group, 
    title = 'Settings Editor', 
    width = 500, 
    buttons = [OKButton, CancelButton, 'Help' ], 
    kind = 'modal', 
    handler = SaveRestore_Handler() 
) 
+0

Пожалуйста, предоставьте весь свой код, чтобы мы могли делать предложения, близкие к тому, что вы хотели бы сделать. – jonathanrocher

+0

Релевантный код здесь: https://gist.github.com/anonymous/5307865 – Nick

+0

Я в основном просто хочу, чтобы кнопка отмены работала. Сейчас он функционально идентичен кнопке okay, которая просто глупо. – Nick

ответ

2

Если я правильно понял вопрос, просмотрев вывод configure_traits должен делать то, что вы хотите:

result = settings_w.configure_traits(kind="livemodal") 

if result: 
    print "The user pressed OK." 
else: 
    print "The user pressed Cancel or closed the window." 
+0

Спасибо, я знал, что ответ должен быть простым. Просто не знал, как туда добраться. – Nick

+0

Это отлично работает, когда пользователь нажимает кнопку «Отмена» или «Хорошо», но результат возвращает True в моем коде, когда пользователь закрывает окно. Как сделать закрытие окна эквивалентным действию отмены? – Nick

+0

@ nickv2002 на какой платформе? – pberkes