Python / wxPython:auinotebook获取所有页面

时间:2011-12-20 19:09:43

标签: python wxpython

我有一张auinotebook,无论如何要获得笔记本中所有页面的列表?当用户从列表中选择操作时,会向笔记本添加新页面。如果他们再次选择该操作,则不应再次添加该页面(相反,将为其选择该页面)。我看不出弄明白怎么做? 谢谢!

2 个答案:

答案 0 :(得分:4)

假设您使用的是wx.lib.agw.aui.AuiNotebook:

import wx.lib.agw.aui as aui

class MyNotebook(aui.AuiNotebook):
    def __getitem__(self, index):
        ''' More pythonic way to get a specific page, also useful for iterating
            over all pages, e.g: for page in notebook: ... '''
        if index < self.GetPageCount():
            return self.GetPage(index)
        else:
            raise IndexError

现在你可以遍历笔记本的页面了:

notebook = MyNotebook(parent)
notebook.AddPage(someWindow, "page 1")
notebook.AddPage(someOtherWindow, "page 2")
for page in notebook:
    ...

答案 1 :(得分:0)

您没有提到您正在使用的AuiNotebook。它是wx.aui或wx.lib.agw.aui附带的吗?无论哪种方式,我认为你可以使用GetChildren()来获取笔记本面板的列表,并根据需要迭代这些面板。还有一个GetPageCount,你可以与GetPageInfo和GetPageText一起使用(这三个方法都在agw版本中......不确定它们是否包含在另一个中)。有关详细信息,请参阅文档:http://xoomer.virgilio.it/infinity77/AGW_Docs/aui.auibook.AuiNotebook.html#aui-auibook-auinotebook

或者您可以交叉发布到wxPython用户列表。