当前位置: 首页 > 知识库问答 >
问题:

设置矩形颜色的动画

李华茂
2023-03-14

我想在一段时间后改变矩形的颜色。

我试过根。after()方法,但它不起作用。

    import time
    from tkinter import *

    def task():
      canvas= Canvas()
      canvas.create_rectangle(0,0,100,100,fill='red')
      canvas.pack()
      time.sleep(2)
      canvas.create_rectangle(0,0,100,100,fill='blue')
      canvas.pack()
      time.sleep(2)
      print("Testing...")


    root = Tk()
    canvas = Canvas(root)
    while(1):
      task()
      root.mainloop()

给定代码连续运行,根窗口挂起一定时间。矩形颜色应该在延迟2秒后改变。

共有1个答案

阎建德
2023-03-14

使用时间。sleep()挂起窗口,同时挂起循环。使用时间。sleep在tkinter中,我们在函数中使用之后(毫秒)(毫秒),这样GUI就不会挂起。

而做同样的,所以我们在(ms,回调,args)函数之后使用

下面是一个你想要达到的目标的例子。矩形将每1000毫秒(1秒)改变一次颜色,从红色变为蓝色-蓝色变为红色,以此类推。另外,在代码中,您每4秒创建一个新的画布和矩形。我所做的是,我在task()函数外定义了一个画布和一个矩形,并给了矩形一个标记(tag='rect'),作为参考,通过它编辑一个矩形的颜色而不创建不必要的项目。我希望这对你有帮助。

示例:

from tkinter import *

root = Tk()
canvas = Canvas(root)
canvas.pack()
canvas.create_rectangle(0,0,100,100,fill='red', tag='rect')

def task():
    l = root.after(1000, task)

    if int(l.split('#')[1]) % 2 == 0:
        canvas.itemconfig('rect', fill='blue')
    else: 
        canvas.itemconfig('rect', fill='red')

task()

root.mainloop()

 类似资料:
  • 问题内容: 我在中创建两个对象,然后执行以下操作。 运行代码时,我可以看到两个矩形(一个在Aqua中,一个在黑色中),当我单击按钮时,我必须等待2秒钟才能查看两个矩形的颜色变化。 我先更改一个矩形的颜色,然后再更改下一个矩形的颜色。 我的问题是为什么我应该等待2秒?有没有一种方法可以动态更新矩形的颜色? 问题答案: 您正在UI线程上睡眠,该线程会阻止任何进一步的处理(包括刷新屏幕)。 如果需要延迟

  • 如何用image Magick替换图像矩形区域内的颜色? 下面是输入和输出图像的示例,我使用Adobe Photoshop生成这些图像,方法是选择一个矩形区域(包含网格区域),并执行命令:并选择要替换为灰色的黑色。 注意,绿色跟踪可以具有任何形状和颜色(黑色除外),绿色像素覆盖了黑色像素,因此是不可能的。 我知道如何替换整个图像中的颜色,像这样: 但是上面用灰色替换了所有的黑色,甚至是黑色文本,比

  • 自定颜色设置 对于大多数色彩管理工作流程,最好使用 Adobe Systems 已经测试过的预设颜色设置。只有在色彩管理知识很丰富并且对自己所做的更改非常有信心的时候,才建议您更改特定选项。 自定选项完成后,可以将它们保存为预设。保存颜色设置确保您可以再次使用它们并与其他用户或应用程序共享。 要将颜色设置保存为预设,请单击 “颜色设置”对话框中的“存储”。要确保应用程序在 “颜色设置”对话框中显示

  • 我在我的javafx应用程序中使用锚板。我想画一个矩形并用渐变色填充它,如下所示:矩形的左侧是蓝色的,右侧是红色的,我希望它看起来从左到右,蓝色减少,红色增加。 我知道如何放置一个矩形(如何在javafx中使用Rectangle类),但我不知道如何以这种方式填充它。有什么想法吗?

  • 主要内容:1. 颜色名称,2. 十六进制码,3. RGB,4. RGBA,5. HSL,6. HSLA我们在显示屏上看到的各种颜色都是通过红(red)、绿(green)、蓝(blue)三原色组合而成的,按不同的比例混合这三种颜色就可以得到其它颜色,通过调整红、绿、蓝三种颜色的数值可以最大限度的控制颜色。 CSS 中提供了一些属性(例如 color、background)来设置 HTML 元素的颜色(例如元素的背景颜色或字体颜色),我们可以通过不同形式的值来指定颜色,如下表所示: 值 描述 实例

  • 主要内容:JOGL 颜色代码列表在 JOGL 中,可以用不同类型的颜色填充图形。着色只是增强了人物的外观和感觉。 JOGL 使用 GL2 接口的 glColor3f() 方法来指定颜色的类型。此方法遵循 RGB(红、绿、蓝)颜色模型。在此模型中,每种颜色都用 0 到 1 之间的值表示,其中 0 表示没有该颜色,1 表示该颜色的最大值。 注意 :需要将所有三种颜色的值作为 glColor3f() 方法的参数传递。 JOGL 颜色代