更多GUI之事件处理器的返回,,


  事件处理器的返回

  通过前几章的Pygame程序,我们已经学习了事件处理器,另外了解了如何使用事件处理器查找键盘和鼠标活动(也就是事件)。这些内容对PythonCard同样适用。

  PythonCard程序有一个类型为Background的类,在代码清单20-1中,我们把它命名为MainWindow(第3行),不过使用任何名字都可以,在这个类中,我们定义了窗口的事件处理器。由于按钮在主窗口中,所以按钮的事件处理器要放在这里。

  事件处理器定义从第5行开始,PythonCard事件处事器以on_开头,后面是组件名(在这里就是helloButton),然后是另一个下划线,最后是事件类型,所以这个事件处理器名为on_helloButton_mouseClick。

  mouseClick只是按钮的事件之一,按钮还有mouseDown、mouseUp、mouseDrag、mouseMove、mouseDoubleClick以及其他一些事件。

  什么是self

  在on_helloButton_mouseClick事件处事器中,有两个参数:self和event。它们分别是什么?

  PythonCard事件处理器总是有两个参数,通常被称为self和event。(也可以是其他任何名字,不过一般约定使用self和event。)

  第14章刚开始讨论对象时曾经说过,self指示调用方法的实例。在这里,所有事件都来自背景或主窗口,所以就是由这个窗口对象调用事件处理器。在这里,self指示主窗口,你可能以为self指示所点击的组件,不过事实并不是这样,它指示的是包含组件的窗口。

  Event指示要响应的事件类型(这里就是鼠标点击)。

评论关闭