更改wxPython Notebook时的调用函数?

时间:2012-10-08 20:19:36

标签: python wxpython

我有一个Python脚本几乎与the wxPy Wiki上的脚本相同,而且我想在每次更改选项卡时运行一个函数(没有缩进)。我已经尝试将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()
编辑:它退出的原因与意外使用App而不是PySimpleApp有关。但是,每次更改选项卡时,列表仍然不会更新(getDivVars()会更新)。我仍然需要这样做。

1 个答案:

答案 0 :(得分: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之外还需要一个参数。