0

我正在尝试制作一个使用“import simplegui”显示计时器剩余时间的程序。

import simplegui

def timer_handler():

    timer = simplegui.create_timer(500, timer_handler)
    timer.start()

message = simplegui.create_timer

def draw(canvas):
    canvas.draw_text(int(message, [50,112], 48, "Red")) #Line where I get the error.

frame = simplegui.create_frame("Home", 300, 200)
frame.set_draw_handler(draw)

frame.start()
4

2 回答 2

1

行尾的括号太多。因此,for 的参数draw_text作为参数传入int

canvas.draw_text(int(message), [50,112], 48, "Red")
                            ^ Move the trailing parenthesis here
于 2019-02-11T20:28:41.320 回答
1

您错误地使用了计时器。timer_handler是每次计时器“滴答”时调用的函数。您必须在函数外部创建计时器,然后将处理程序作为参数传递。

至于显示时间,您必须创建一个全局变量,然后从处理程序中递增它,如下所示:

import simplegui

time = 0

def timer_handler():
    global time
    time += 1

timer = simplegui.create_timer(500, timer_handler)
timer.start()

def draw(canvas):
    canvas.draw_text(str(time), [50,112], 48, "Red") #Line where I get the error.

frame = simplegui.create_frame("Home", 300, 200)
frame.set_draw_handler(draw)

frame.start()
于 2019-02-11T20:42:24.700 回答