TraitsUI를 사용하는 응용 프로그램에서 작업하고 있습니다.확인을 클릭하지 않고 TraitsUI 창 닫기
일부 값을 요청하는 창을 팝업해야합니다.
ProcessValues 버튼과 SaveValues 버튼과 같은 것이 있습니다. SaveValues을 클릭하면 ProcessValues을 클릭하면
- , 뭔가 수행해야합니다, 다음 창이
- 을 닫아야합니다, 뭔가 다른이 창을 너무 폐쇄해야 수행해야합니다.
이 더 OK 버튼 아래의 예제 코드에서
에게 수 없습니다, 버튼을 클릭하면 처리기에서 메시지를 인쇄 할 수 있습니다,하지만 난 그 자체 창을 닫습니다하기 위해 무엇을 해야할지하지 않습니다한다 프레임에서 [x]를 클릭하는 것 이외에는
close() 오버로드가 트릭을 수행하지 않는 것처럼 보입니다. AFTER OK를 클릭 할 때 호출됩니다. 아마도 close_window 이벤트를 생성하는 방법이있을 수도 있고 아니면 뭔가 다른 것일 수도 있습니다.
아무도 도와 줄 수 있습니까?
from enthought.traits.api import HasTraits, Instance, Str, Int, List, Any, DelegatesTo
from enthought.traits.ui.api import Handler, View, Item, Action
class MyPanelHandler(Handler):
def _process_values(self, info):
#>>>reach process_values() through info and call
print 'values processed OK'
#>>> what goes here so that the window is closed?
def _save_values(self, info):
#>>>reach save_values() through info and call
print 'values saved OK'
#>>> what goes here so that the window is closed?
class MyPanel(HasTraits):
model = Any
name = Str
age = Int
process_values_button = Action(name = 'Process Values', action = '_process_values')
save_values_button = Action(name = 'Save Params', action = '_save_values')
view = View('name', 'age', handler = MyPanelHandler(),
buttons = [process_values_button, save_values_button],)
class MyApp(HasTraits):
panel = Instance(MyPanel)
def __init__(self):
self.panel = MyPanel(model = self)
def get_values(self):
self.panel.configure_traits()
def save_values(self, name, age):
print '... doing whatever to save values'
def process_values(self):
print '... doing whatever to process values'
if __name__ == '__main__':
a = MyApp()
a.get_values()