MessageDialog를 열기 전에 중지하고 MessageDialog를 닫은 후 다시 시작하려는 wxTimer를 실행하고 있습니다.wxPython MessageDialog - 상태를 쿼리하는 방법?
어떻게하면됩니까? 대화 상자가 닫혔는지 여부를 알려주는 메서드를 찾지 못했습니다. 타이머가 기본적으로 그냥 똑딱 계속 점점 더 많은 창은 모든 틱 :(
당신이 나를 도울 수 있기를 바랍니다. 감사합니다!MessageDialog를 열기 전에 중지하고 MessageDialog를 닫은 후 다시 시작하려는 wxTimer를 실행하고 있습니다.wxPython MessageDialog - 상태를 쿼리하는 방법?
어떻게하면됩니까? 대화 상자가 닫혔는지 여부를 알려주는 메서드를 찾지 못했습니다. 타이머가 기본적으로 그냥 똑딱 계속 점점 더 많은 창은 모든 틱 :(
당신이 나를 도울 수 있기를 바랍니다. 감사합니다!wxPython에 정말 어떤 메커니즘이없는에서 열리는 순간
MessageDialog가 열려 있는지 여부를 결정. 당신이 대신 할 수있는 것은 수동 인 것은 대화 상자가 열려 있는지 여부를 추적합니다.당신이 ShowModal
를 사용하여 MessageDialog을 열 경우, ShowModal
호출 대화 상자를 닫을 때. 당신은 할 수 반환 내가 쓰는 깃발을 사용해라. 다음 대화 상자가 열려 있는지 여부를 결정하기 위해 self.is_dialog_open
를 사용할 수 있습니다 wx.Timer에 의해 호출
self.is_dialog_open = True
dialog.ShowModal()
self.is_dialog_open = False
에있어서, 나중에 ShowModal
및 False
에 호출하기 전에 True
에 같은 즉, 뭔가를 설정 s의.
응용 프로그램의 구조에 따라이 플래그를 self
대신 다른 개체에 저장할 수 있습니다.
(이 코드가 경쟁 조건에 취약하지 않음을 보증하지는 않습니다. 타이머가 ShowModal()
이 반환 된 직후에 열려 있지만 self.is_dialog_open
이 다시 False
으로 설정되기 전에 타이머가 열려 있는지 확인하는 경우 타이머 다행히도 이것은 당신에게 심각한 문제는 아니기를 바랍니다.)
'ShowModal'을 사용하여 MessageDialog를 열면'ShowModal' 호출이 리턴 될 것입니다. 대화 상자가 닫힐 때 'ShowModal'과'False'를 호출하기 직전에 변수 (또는 객체 속성)를'True'로 설정하면 MessageDialog가 열려 있는지 여부를 감지 할 수 있습니다. –
실제로 작동했습니다. 감사합니다! :-) – SGer
도움이 되니 기쁩니다! 나는 지금 그것을 완전한 답으로 썼다. –