为了账号安全,请及时绑定邮箱和手机立即绑定

如何延迟在 python 中在画布中创建线的时间?

如何延迟在 python 中在画布中创建线的时间?

哔哔one 2023-03-16 17:51:04
我想在一秒内在画布中创建一条线,在另一秒内创建另一条线。但是我的代码在延迟 1 秒后在一秒内显示所有行。每一秒我都想根据这些(每秒)坐标在画布中创建一条线。我正在使用 for 循环在画布内创建第 60 行。from tkinter import *import timeroot = Tk()canvas = Canvas(root)canvas.pack()everysecond = [(99), (27),               (107), (29),               (115), (29),               (122), (33),               (129), (35),               (135), (38),               (142), (43),               (147), (48),               (153), (52),               (157), (57),               (161), (64),               (165), (72),               (168), (79),               (169), (85),               (171), (92),               (169), (99),               (171), (108),               (169), (115),               (168), (123),               (165), (130),               (160), (134),               (158), (142),               (153), (147),               (148), (154),               (142), (158),               (136), (160),               (129), (166),               (122), (168),               (114), (170),               (107), (170),               (100), (169),               (92), (169),               (85), (170),               (79), (168),               (72), (166),               (67), (160),               (58), (158),               (52), (153),               (48), (148),               (43), (142),               (38), (134),               (33), (128),               (34), (121),               (30), (114),               (31), (107),               (29), (102),               (30), (91),               (31), (86),               (32), (79),               (35), (70),               (36), (70),               (44), (58),               (47), (53),               (53), (47),               (58), (41),               (63), (37),               (71), (34),               (78), (32),               (85), (30),               (92), (29)]
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

k将和j作为 .like 中的参数传递after:


from tkinter import *

import time


root = Tk()

canvas = Canvas(root)

canvas.pack()


line_id = []


everysecond = [(99), (27),

               (107), (29),

               (115), (29),

               (122), (33),

               (129), (35),

               (135), (38),

               (142), (43),

               (147), (48),

               (153), (52),

               (157), (57),

               (161), (64),

               (165), (72),

               (168), (79),

               (169), (85),

               (171), (92),

               (169), (99),

               (171), (108),

               (169), (115),

               (168), (123),

               (165), (130),

               (160), (134),

               (158), (142),

               (153), (147),

               (148), (154),

               (142), (158),

               (136), (160),

               (129), (166),

               (122), (168),

               (114), (170),

               (107), (170),

               (100), (169),

               (92), (169),

               (85), (170),

               (79), (168),

               (72), (166),

               (67), (160),

               (58), (158),

               (52), (153),

               (48), (148),

               (43), (142),

               (38), (134),

               (33), (128),

               (34), (121),

               (30), (114),

               (31), (107),

               (29), (102),

               (30), (91),

               (31), (86),

               (32), (79),

               (35), (70),

               (36), (70),

               (44), (58),

               (47), (53),

               (53), (47),

               (58), (41),

               (63), (37),

               (71), (34),

               (78), (32),

               (85), (30),

               (92), (29)]



def second(k, j):

    line_id.append(canvas.create_line((everysecond[k], everysecond[j], 100, 100), width=2, fill='red'))

    if j == len(everysecond)-1:

        for id in line_id:

            canvas.delete(id)

        canvas.after(100, second, 0, 1)

    else:

        canvas.after(100, second, k + 2, j + 2)


canvas.after(100, second, 0, 1)

root.mainloop()


查看完整回答
反对 回复 2023-03-16
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号