2

現在、プロジェクトの 1 つで wxPython の 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か?

4

1 に答える 1

1

これを行うための組み込みの方法はないようです。私が見つけた最も近いものは、wxPythonメーリングリストで手伝ったものでしたが、それはダブルクリックと関係がありました。

ただし、これが私にもたらされた1つの回避策です。フレームを最初に表示するときに、ある種のクラスプロパティを現在表示されているタブに設定します(つまり、self.currentTab = 0)。次に、EVT_AUINOTEBOOK_PAGE_CHANGINGまたはEVT_AUINOTEBOOK_PAGE_CHANGEDイベントをキャッチし、プロパティを更新します。私の場合、EVT_AUINOTEBOOK_PAGE_CHANGINGをキャッチすると、少なくともWindowsでは、クリックしているタブのインデックスが常に取得されます。

于 2012-08-28T19:12:59.353 に答える