2012-08-28 23 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用戶組發出請求。安德烈(作者)可以添加它,如果你問得好。 –

相關問題