首先声明,这里用到的库是在coursera上学习时,老师建立的一个库
#timer
import simplegui
import random
# global state
message = "Python is Fun!"
position = [50, 50]
width = 500
height = 500
interval = 2000
#Handler for text box
def update(text):
global message
message = text
#Handler for timer
def tick():
x = random.randrange(0, width)
y = random.randrange(0, height)
position[0] = x
position[1] = y
#Handler for draw on canvas
def draw(canvas):
canvas.draw_text(message, position, 36, "Yellow")
#Create a frame
frame = simplegui.create_frame("Home", width, height)
#Register event handler
text = frame.add_input("Message", update, 150)
frame.set_draw_handler(draw)
timer = simplegui.create_timer(interval, tick)
frame.start()
timer.start()
首先看一下上述代码,是一个简单是屏幕保护程序
由上述代码引发的一些想法:
python编程现在我觉的它的最大的一个特点,就是把
事件分为好多个不相干的子事件
例如这个程序:
一个简单的屏幕保护程序:
把想要显示的message设为一个事件
把定时的改变位置设置一个事件
如果可以的话还可以把时间间隔设置为一个事件
最后综合起来画图设置为一个事件
适当的分解程序
重点是互不相干!!
另外在上课时也发现一个问题,虽然找到了答案,老师也给出了简答
问题:为什么改变了变量position,而不用声明
global?
答:因为它只是依次的改变了position的元素,而
没有改变position本身