0

我有一个与wxPy Wiki 上的几乎相同的 Python 脚本,并且我想在每次更改选项卡时运行一个函数(无缩进)。我已经尝试theFunction()在Notebook 使用的三个类中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() 会更新)。我仍然需要这样做。

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 回答