我可以在tkinter中使用rbg代替十六进制吗?如果是这样,我该怎么办? 我打算使用此功能使某种颜色从一种颜色过渡到另一种颜色,并且我计划进行for循环以在几秒钟内将其从1更改为255。
from tkinter import *
root = Tk()
root.configure(background="can i use rgb instead of hex here?")
root.mainloop()
答案 0 :(得分:5)
不,tkinter不支持RGB,但是您可以编写一个小的辅助函数来解决此问题:
也许是这样的,其中参数rgb
必须是表示为整数元组的有效rgb代码。
import tkinter as tk
def _from_rgb(rgb):
"""translates an rgb tuple of int to a tkinter friendly color code
"""
return "#%02x%02x%02x" % rgb
root = tk.Tk()
root.configure(bg=_from_rgb((0, 10, 255)))
root.mainloop()
答案 1 :(得分:1)
def rgbtohex(r,g,b):
return f'#{r:02x}{g:02x}{b:02x}'
print(rgbtohex(r=255, g=255, b=255))
希望这对你们中的一些人有帮助
答案 2 :(得分:0)
据我所知,没有,但是正如雷布洛雄所说,有一种方法。您还可以使用“ time.sleep()”函数每隔几秒钟更改一次颜色,尽管事实上它仍然需要默认的python / tkinter颜色选项。如果您需要帮助,也可以使用此网站: http://effbot.org/tkinterbook/tkinter-widget-styling.htm
答案 3 :(得分:-1)
对不起,我的回答不正确,我认为没有正确解决。既然我已经看到您的评论@ Mike-SMT,我已经对其进行了改进
from tkinter import *
import random
import time
window = Tk()
window.title("Random colours")
colours = ["black",
"cyan",
"magenta",
"red",
"blue",
"gray"
]
bgColour = window.configure(background = random.choice(colours))
window.update()
time.sleep(1)
bgColour1 = window.configure(background = random.choice(colours))
window.mainloop()
玩得开心,您可以发挥创造力,并做一些事情,例如将其变成永远变化的背景色或进行序列化。您可以使用Tkinter上的许多不同颜色,因此,如果您确实需要,可以每隔几秒钟手动更改每种颜色。我之前忘记提及的另一件事,您不能像Mike所说的那样使用time.sleep()选项,但是如果您使用代码行“ .update()”,它将起作用,如上所示。