0

wxPy Wikiのスクリプトとほぼ同じPythonスクリプトがあり、タブが変更されるたびに(インデントなしで)関数を実行したいと思います。私は、ノートブックで使用される3つのクラスのそれぞれの行のtheFunction()後に行を置いてみました。これを行うと、ウィンドウは閉じた直後に閉じ、ターミナルでエラーは発生しません。私は何が間違っているのですか?ノートブックで使用されるクラスごとに、次のようになります。wx.Frame.__init__...def __init__

class Textures(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.textureslist = wx.ListBox(choices = ['One', 'Two', 'Three'], id = -1, name = 'textureslist', parent = self, pos = (6, 0), size = (382, 150))
        getDivVars()

編集:それが終了した理由は、PySimpleAppではなくAppを誤って使用したことに関連していました。ただし、タブが変更されるたびにリストは更新されません(getDivVars()は更新されます)。私はまだこれをする必要があります。

4

1 に答える 1

1

EVT_NOTEBOOK_PAGE_CHANGEDノートブック ページが変更されるたびに関数が呼び出されるようにするには、イベントを関数またはメソッドにバインドします。「単純な wx.Notebook の例」を出発点として、次の行を追加します。

    nb.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.some_method)

または、メソッドではなくクラス外で関数を呼び出したい場合は、

    nb.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, some_function)

some_functionは単一のパラメーターを取るsome_method必要があり、 に加えて単一のパラメーターを取る必要がありますself

于 2012-10-08T21:11:19.510 に答える