如果想对这个按钮做些操作,怎么指示按钮呢? PythonCard 为窗口中的所有组件维护了一个列表。这个列表名为 self.components。如果希望特别对这个按钮做某个处理,需要用它的名字 helloButton,并结合这个列表的名字。也就是 self.components.helloButton。
在代码清单 20-1 的例子中,每次点击按钮时会让它移动。按钮在窗口中的位置由它的 position 属性确定,也就是 self.components.helloButton.position。position 属性是一个列表,这个列表包含两个元素:x 位置和 y 位置,它们都是整数。x 位置是与窗口左边的距离,y 位置是与窗口顶边的距离。窗口左上角的位置是[0, 0](这与 Pygame 中一样)。
要移动按钮,只需要改变它的位置。这个工作由代码清单 20-1 的第 6 行到第 12 行完成。(本来做这个工作不需要这么多行代码,不过我希望你能轻松地读懂代码在做什么,所以对于每一个小步骤我都编写了单独的一行代码。)
运行这个程序时,你会看到,点击几次后,按钮会从窗口右下角消失。如果还想看到按钮,可以调整窗口的大小(拖动窗口边界或者窗口的某个角),让窗口更大,这样你就又能看到按钮了。完成时可以关闭窗口,你可以点击标题栏中的 ×,或者使用“File” “Exit”菜单来关闭。
可以注意到,与 Pygame 不同,现在我们不用操心把按钮从它的老位置“擦除”,再在新位置上重绘。我们只需要移动按钮,所有这些擦除和重绘工作都会由 PythonCard 来完成。