2012-08-28 2 views
1

현재 내 프로젝트 중 하나에서 wxPython의 AuiNotebook을 사용하고 있으며 해결할 수없는 문제가 있습니다. 나는 간단한 해결책이 있어야한다고 생각하지만 그것을 찾을 수는 없다.AuiNotebook - 클릭 한 탭 받기

wx.lib.agw.aui.AuiNotebook에서 파생 된 새 클래스를 만들었으며 클릭 한 순간에 탭 인덱스를 얻으려고합니다.

class NewNotebook(wx.lib.agw.aui.AuiNotebook): 

    # __init__ function an stuff... 

    def OnTabClicked(self, evt): 
     index = self.GetSelection() 
     print index 
     wx.lib.agw.aui.AuiNotebook.OnTabClicked(self, evt) 

목적은 탭의 인덱스가 클릭 어떤 경우에는, 특별한 동작을, 아니면 그냥 다른 일반 클릭을 수행 포착했다 : 나는 그런 일을 썼다. 그러나, 나는 AuiNotebook.OnTabClicked이 실제로 여러 가지 중에서 선택을 변경한다고 생각합니다. 그것은 왜 index에 클릭 전에 선택되었던 탭의 값이 들어 있는지 설명 할 것입니다.

새 탭을 선택하는 방법을 찾지 못했습니다. 캡처 된 이벤트에서 일부 정보를 찾았지만 여전히 원하는 정보를 찾을 수 없었습니다.

그래서 누군가 AuiNotebook.OnTabClicked에 전화하기 전에 선택한 탭을 가져올 수있는 방법을 알고 있습니까?

답변

1

내장 된 방법이없는 것처럼 보입니다. 내가 찾은 가장 가까운 것은 wxPython mailing list에서 도움이되는 것이었지만 더블 클릭과 관련이 있습니다.

나에게도 한 가지 해결책이 있습니다. 프레임을 처음 표시 할 때 현재 표시된 탭에 일종의 클래스 속성을 설정합니다 (예 : self.currentTab = 0). 그런 다음 EVT_AUINOTEBOOK_PAGE_CHANGING 또는 EVT_AUINOTEBOOK_PAGE_CHANGED 이벤트를 잡아 속성을 업데이트하십시오. 필자가 EVT_AUINOTEBOOK_PAGE_CHANGING을 (를) 얻었을 때 필자는 적어도 Windows에서 클릭하는 탭의 인덱스를 얻습니다.

+0

확인. 해결 방법은 충분히 잘 작동하는 것, 감사합니다! 나는 아직도 조금이라도 실망했다. 내장 된 방법이 없다면, 그것은 더 편리했을 것이다 : p – Morwenn

+0

예, 농담이 아닙니다. 나는 wxPython-users 그룹에 요청을 할 것이다. Andrea (저자)는 당신이 멋지게 물으면 그것을 추가 할 것입니다. –

관련 문제