首页 » 与孩子一起学编程 » 与孩子一起学编程全文在线阅读

《与孩子一起学编程》20.4 事件处理器的返回

关灯直达底部

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

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

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

mouseClick 只是按钮的事件之一。按钮还有 mouseDownmouseUpmouseDragmouseMovemouseDoubleClick 以及其他一些事件。

什么是 self

on_helloButton_mouseClick 事件处理器中,有两个参数:selfevent。它们分别是什么? PythonCard 事件处理器总是有两个参数,通常被称为 selfevent。(也可以是其他任何名字,不过一般约定使用 selfevent。)

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

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