可以实时通过三个滑块来调节RGB数值的0-255数值,并且显示出了来对应的颜色,按下键盘S可以在终端输出RGB对应的色值。
import tkinter as tk
class RGBApp(tk.Tk):
def __init__(self):
super().__init__()
self.title("RGB Slider")
self.geometry("300x300")
# 创建RGB值的标签
self.label_r = tk.Label(self, text="R: 0")
self.label_r.pack()
self.label_g = tk.Label(self, text="G: 0")
self.label_g.pack()
self.label_b = tk.Label(self, text="B: 0")
self.label_b.pack()
# 创建RGB滑块
self.slider_r = tk.Scale(self, from_=0, to=255, orient='horizontal', label='Red', command=self.update_r)
self.slider_r.pack()
self.slider_g = tk.Scale(self, from_=0, to=255, orient='horizontal', label='Green', command=self.update_g)
self.slider_g.pack()
self.slider_b = tk.Scale(self, from_=0, to=255, orient='horizontal', label='Blue', command=self.update_b)
self.slider_b.pack()
# 创建颜色显示框
self.color_label = tk.Label(self, width=50, height=50, bg='black')
self.color_label.pack()
# 绑定键盘事件
self.bind('s', self.print_rgb)
# 初始化颜色
self.update_color()
def update_r(self, value):
self.label_r.config(text=f"R: {value}")
self.update_color()
def update_g(self, value):
self.label_g.config(text=f"G: {value}")
self.update_color()
def update_b(self, value):
self.label_b.config(text=f"B: {value}")
self.update_color()
def update_color(self):
r = int(self.slider_r.get())
g = int(self.slider_g.get())
b = int(self.slider_b.get())
color = f'#{r:02x}{g:02x}{b:02x}'
self.color_label.config(bg=color)
def print_rgb(self, event):
r = int(self.slider_r.get())
g = int(self.slider_g.get())
b = int(self.slider_b.get())
print(f"Current RGB values: R={r}, G={g}, B={b}")
if __name__ == "__main__":
app = RGBApp()
app.mainloop()