You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取用户输入的颜色并转换为可在主代码中使用的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:09:03