我有Python代码生成屏幕的平均颜色为RGB值和十六进制代码。代码通过while True
循环重复自身,我想在此循环结束时将指令更改为窗口颜色。
我现在有这个代码:
from Tkinter import *
from colour import Color
root = Tk()
root.configure(background="grey")
root.geometry("400x400")
root.mainloop()
while True:
[ COLOUR GENERATING SCRIPT ]
hexcolour = Color(rgb=(red, green, blue))
root.configure(background=hexcolour)
有人可以告诉我如何启动Tkinter窗口然后在每次循环运行时更改颜色吗?
我为这个项目运行Python 2.7。
答案 0 :(得分:2)
您需要完全删除while
循环。相反,创建一个在循环中将要执行的函数,然后让该函数通过after
调用自身。然后它会在程序的生命周期内运行。
from Tkinter import *
from colour import Color
def changeColor():
[ COLOUR GENERATING SCRIPT ]
hexcolour = Color(rgb=(red, green, blue))
root.configure(background=hexcolour)
# call this function again in one second
root.after(1000, changeColor)
root = Tk()
root.configure(background="grey")
root.geometry("400x400")
# call it once, it will run forever
changeColor()
root.mainloop()