我可以在tkinter中使用rgb吗?

时间:2018-07-30 09:59:21

标签: python tkinter colors

我可以在tkinter中使用rbg代替十六进制吗?如果是这样,我该怎么办? 我打算使用此功能使某种颜色从一种颜色过渡到另一种颜色,并且我计划进行for循环以在几秒钟内将其从1更改为255。

from tkinter import *

root = Tk()
root.configure(background="can i use rgb instead of hex here?")
root.mainloop()

4 个答案:

答案 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()”,它将起作用,如上所示。