【发布时间】:2020-11-08 13:40:14
【问题描述】:
我想在一秒钟内在画布中创建一条线,然后在另一秒钟内创建另一条线。 但是我的代码在延迟 1 秒后在一秒内显示所有行。 每一秒我都想根据这些(每秒)坐标在画布中创建一条线。 我正在使用 for 循环在画布内创建第 60 行。
from tkinter import *
import time
root = 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)]
def second():
j = 1
k = 0
for i in range(0, 60):
canvas.create_line((everysecond[k], everysecond[j], 100, 100), width=2, fill='red')
j = j + 2
k = k + 2
canvas.after(1000, second)
root.mainloop()
【问题讨论】:
-
显示错误:
NameError: name 'j' is not defined. -
@jizhihaoSAMA 对不起先生,这是我在 stackoverflow 中的第一个问题,并且在发布问题时选项卡(空格)不正确。那么,你现在能帮帮我吗?我现在给出了正确的代码。
-
请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。
标签: python tkinter canvas time