如何在Tkinter画布上重画线条

2024-10-16 20:48:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我在tkinter画布上有一些行,也有它们的代码。我想让他们变红,但不是瞬间,我想在他们身上画另一条线(红线),但这需要不同的时间。例如,对于一条特定的线,它应该需要3秒,而另一条线变红则需要7秒。这就像在前一条红线上画了一条红线。在

   def activator(self, hexagon, duration_time):
        if not hexagon.is_end:
            self.canvas.itemconfigure(hexagon.drawn, fill="tomato")
            self.canvas.itemconfigure(hexagon.hex_aspects.outputs.drawn, fill="tomato")

例如,我想要我的六边形,它是由tkinter的create_polygon方法创建的,但不是立即变红。它应该做关于持续时间的第二个变量。我的意思是应该在持续时间-时间-秒(比如3秒)内完成。 有办法吗?我的画布上有很多物体,在特定的时间内会变红。直线、圆、多边形。。在


Tags: 代码selftkinterdef画布时间fillcanvas
2条回答

为此,您可以在其上绘制,并使用一个函数在不同的时间内绘制每个对象:

import time
def redraw(delay, color, canvas):
    time.sleep(delay)
    #some parentheses are for the arguments
    (canvas).create_(shape)(blah, outline=(color), fill=(color))

对于每个形状,但对于线,不执行填充参数。在

要在画布中绘制内容,请使用create方法添加新项。在

from Tkinter import *

master = Tk()

w = Canvas(master, width=200, height=100)
w.pack()

w.create_line(0, 0, 200, 100)
w.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))

w.create_rectangle(50, 25, 150, 75, fill="blue")

相关问题 更多 >