2011-12-20 69 views
0

私はauinotebookを持っていますが、ノートブックのすべてのページのリストを取得するにはどうしますか?ユーザーがリストからアクションを選択すると、新しいページがノートブックに追加されます。そのアクションを再度選択すると、そのページは再び追加されません(代わりに、そのページが選択されます)。私はこれを行う方法を把握することができませんか? ありがとう!Python/wxPython:auinotebookすべてのページを取得

答えて

4

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

を、これは私が探していたものを感謝していますために!副メモとして、wx.auiとwx.lib.agw.auiの違いは何ですか?私はちょうどそれをgoogledしかし、良い結果を得ていない... –

+0

wx.auiは、C + +で開発されたAUIのwxWidgetsバージョンです。 wx.lib.agw.auiは、Andrea Gavanaによって開発されたPythonおよびwxPythonのAUIのポートです。どちらもwxPythonに含まれています。 Andreaのバージョンの利点は、それがPython(より簡単なデバッグ)であり、パッチを受け入れることです。 –

+0

フランクの情報ありがとう。私の本当の疑問は、その違いが何であるか、またはコミュニティに推奨される「優先」バージョンがあるかどうかということです。 wxPythonのページ上のwikiを比較して比較するといいでしょう。あなたのコメントから、Andreaのバージョンが優先されるかもしれません。ありがとう。 –

0

使用しているAuiNotebookについては言及していません。 wx.auiまたはwx.lib.agw.auiに付属しているのでしょうか?いずれにしても、GetChildren()を使用してノートブックパネルのリストを取得し、必要に応じてそれらのパネルを繰り返し処理できると思います。また、GetPageInfoとGetPageTextと一緒に使うことができるGetPageCountもあります(これらの最後の3つのメソッドは、agwバージョンにあります。他のメソッドに含まれているかどうかはわかりません)。詳細については、ドキュメントを参照してください。http://xoomer.virgilio.it/infinity77/AGW_Docs/aui.auibook.AuiNotebook.html#aui-auibook-auinotebook

また、wxPythonユーザーのリストにクロスポストすることもできます。

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 

今、あなたは、ノートブックのページを反復処理することができます:あなたはwx.lib.agw.aui.AuiNotebookを使用していると仮定すると、