2012-05-17 7 views
1

그래서 wxPython을 더 잘 배우고 (그리고 내가 좋아하는 텍스트 편집기를 만들기 위해) 텍스트 편집기를 사용하고 있습니다 : P). wx.aui.AuiNotebook 클래스에 대한 많은 정보를 찾는 데 어려움을 겪고 있습니다. 한 가지 알고 싶은 것은 페이지와 상호 작용하는 방법입니다. 예를 들어, 페이지의 제목을 변경하는 방법을 알고 싶습니다 (저장하지 않은 변경 사항이있을 때 사용자가 저장하거나 표시 할 때 페이지 제목을 업데이트 할 수 있도록). 이 문제에 대한 어떤 도움이라도 대단히 감사하겠습니다! 당신이 그런 짓을 할 수 있도록wx.aui.AuiNotebook에서 페이지 제목을 어떻게 바꿉니 까?

답변

2

방법은, SetPageText라고 : wx.aui.AuiNotebook.GetCurrentPage를 포함하지 않는 wxPython을 버전 2.8에서,

current_page = notebook.GetCurrentPage() 
    current_page_index = notebook.GetPageIndex(current_page) 
    current_label = notebook.GetPageText(current_page_index) 
    if not current_label.endswith(' (*)': 
     notebook.SetPageText(current_page_index, current_label + ' (*)') 
+0

wxPython 버전 2.8에서 작동합니까? aui.AuiNotebook.GetCurrentPage가 존재하지 않는다는 오류가 나타납니다. 그것이 2.8에서 가능하지 않다면 GetCurrentPage없이 어떻게 할 것인가? – BrotherJack

+0

wx.agw.aui 패키지를 사용하고 있었다고 잘못 알고 있었습니까? 나는 AUI 버전을 강력히 추천한다. 이것은 Andrea Gavana가 잘 관리하고있는 wx.aui의 파이썬 포트입니다. http://wiki.wxpython.org/AuiNotebook%20%28AGW%29를 참조하십시오. –

+0

좋아, 내가 살펴 보겠다. 감사! – BrotherJack

1

분명히(). 분명히 깨닫지 못했던 것은 wx.aui.AuiNotebook의 "페이지"가 ​​추가되고있는 패널과 동일하다는 것입니다. 따라서 다음 코드가 작동합니다.

self.panelBox = [] 
    newPanel = wx.Panel(self, wx.ID_ANY) 

    #YADA YADA STUFF!   

    self.nb.AddPage(newPanel, "Untitled Document "+str(self.untitledDocCount)) 
    currPageIndex = self.nb.GetPageIndex(newPanel) 
    currLabel = self.nb.GetPageText(currPageIndex) 
    if not currLabel.endswith(' (*)'): 
     self.nb.SetPageText(currPageIndex, currLabel+' (*)') 
    self.panelBox.append(newPanel) 

페이지 (패널)에 액세스 할 수 있는지 확인하는 것은 프로그래머의 몫입니다. 패널 참조를 "패널 상자"에 저장 한 다음 "탭 변경"이벤트와 같은 조건에서 해당 패널 참조를 전환하여이 작업을 수행합니다. 이 방법이 가장 좋은 방법인지는 모르지만 지금까지는 효과가있는 것 같습니다.

관련 문제