在wxPython中将事件传递给类外部的函数

时间:2014-08-31 18:46:49

标签: python wxpython

如何处理事件被触发的类外部的函数,我该怎么办?例如,单击面板时调用onClick方法时,下面的代码工作正常。

class MyFrame(wx.Frame):

    def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,'Cubit 2D',size=(600,600))
        self.Center()
        self.panel=(wx.Panel(self))
        self.panel.SetBackgroundColour('grey')

        self.panel.Bind(wx.EVT_LEFT_DOWN,self.onClick)

    def onClick(self,event):
        print 'hello'

但是,如果我将函数onClick移动到另一个.py文件,如下所示,它不起作用。如何将事件信息传递给位于其他文件中的函数?

#main file

import wx
import onclick

class MyFrame(wx.Frame):

    def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,'Cubit 2D',size=(600,600))
        self.Center()
        self.panel=(wx.Panel(self))
        self.panel.SetBackgroundColour('grey')

        self.panel.Bind(wx.EVT_LEFT_DOWN,onclick.onClick)

其他具有功能的文件

def onClick(self,event):
    print 'hello'

1 个答案:

答案 0 :(得分:1)

只需从其他文件中的self函数中删除onClick参数:

def onClick(event):
    print 'hello'

实例方法只需要self参数,而不是普通函数。