我有一个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()会更新)。我仍然需要这样做。
答案 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
之外还需要一个参数。