2016-06-22 6 views
0

제가 일하는 회사의 일부 소프트웨어를 개발 중입니다. GUI 용 wx를 사용하고 있습니다. 기본적으로 다음과 같습니다. 프로그램이 사용 중이거나 로딩 중이면 wx.BusyInfo 객체를 만듭니다. 그러나 때로는이 바쁜 정보 상자가 여전히 표시되어 있고 사용자에게 오류 메시지를 인쇄해야하지만 실제로 MessageDialog가 BusyInfo 상자 아래에 표시됩니다. 왜? BusyInfo 위에 오류를 표시하는 방법이 있습니까? wx.STAY_ON_TOP 옵션을 시도했지만 작동하지 않았습니다.wx Python MessageDialog가 BusyInfo 상자 뒤에 나타납니다?

내 수업이 복잡해지고 BusyInfo를 삭제하고 오류를 표시 한 다음 BusyInfo를 다시 만들지 않기 때문에이 방법이 필요합니다. 내 코드에서 BusyInfo 상자 위에 MessageDialog 오류가 표시되는 것이 더 쉽습니다.

감사합니다. 나는이 문제를 해결하는 방법을 발견

# myWindow is the main Window or Frame 
wx.BusyInfo("Loading, please wait ...", myWindow) 
wx.MessageDialog(myWindow, "Error message", "Error!", style = wx.OK | wx.ICON_EXCLAMATION | wx.STAY_ON_TOP) 

답변

0

구글 검색과 연구를 많이 한 후 :

여기에 내가 뭘하려고 오전에 대한 몇 가지 예제 코드입니다! 첫째, wx.BusyInfo 대신 PyBusyInfo를 사용합니다 (여기에 코드가 있습니다 : https://searchcode.com/codesearch/view/63249201/). 이것은 wx.BusyInfo가 실제로 wx.Window 클래스에서 상속되지 않았기 때문입니다. 그러나 PyBusyInfo는; 우리는 wx.MessageDialog에 전달하기 때문에 바쁜 프레임이 필요합니다. 그런 다음, self._infoFrame을 wx.MessageDialog의 부모로 전달합니다. 그게 전부 야.

첫째, 내가 PyBusyInfo 클래스에이 방법을 추가 :

myBusy = PyBusyInfo("Loading, please wait ...", myParentWindow) 
wx.MessageDialog(myBusy.getFrame(), "Error message", "Error!", style = wx.OK | wx.ICON_EXCLAMATION | wx.STAY_ON_TOP) 

이를 그런 다음

def getFrame(self): 
    return self._infoFrame 

을, 나는 그것이 바쁜 정보 상자 위의 오류 메시지가 제대로 작동하려면이 코드를 할 해결해야 할 어려운 문제 였지만이 정보는 같은 문제를 겪고있는 다른 사람들을 도울 것입니다.