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