如何获取用户输入的颜色并转换为可在主代码中使用的RGB值
调整方案与可运行代码
原代码仅将RGB值打印到控制台,没有存储到可调用的变量中,也缺少收集3次颜色、拼接为9元素数组的逻辑,调整后的实现如下:
from tkinter import * from tkinter import colorchooser # 初始化存储RGB值的列表,最终会存储9个元素 rgb_result = [] def choose_color(): global rgb_result # 动态显示当前选择的是第几种颜色 color_code = colorchooser.askcolor(title=f"选择第{len(rgb_result)//3 + 1}种颜色") # 兼容用户点击取消的场景,避免程序报错 if not color_code or not color_code[0]: return # 将当前颜色的R、G、B三个值依次加入结果列表 rgb_result.extend(color_code[0]) # 收集满3种颜色(共9个值)后自动关闭选择窗口 if len(rgb_result) == 9: root.destroy() root = Tk() root.geometry("400x400") select_btn = Button(root, text="选择颜色", command=choose_color, font=("微软雅黑", 14)) select_btn.pack(pady=150) root.mainloop() # 后续主代码可直接调用rgb_result变量,它就是要求的9元素数组 # 示例调用:拆分三个颜色的RGB参数 r1, g1, b1, r2, g2, b2, r3, g3, b3 = rgb_result # 示例计算:求三种颜色的R值平均值 avg_r = (r1 + r2 + r3) / 3 print("三种颜色的R值平均值为", avg_r)
关键改动说明
- 新增全局变量
rgb_result存储所有选中的RGB值,窗口关闭后主代码可以直接读取该变量做任意计算 - 增加了取消选择的兼容逻辑,避免用户点击取色器取消按钮时程序报错
- 加入了满3种颜色自动关闭窗口的逻辑,操作流程更符合需求
- 提供了参数拆分和计算的示例,可直接参考修改为你需要的业务逻辑
内容的提问来源于stack exchange,提问作者yuval
相关产品推荐
相关产品推荐

