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

如何通过Tkinter的colorchooser获取自定义颜色值?

获取tkinter颜色选择器中自定义颜色的数值

方法1:通过Tcl底层命令获取系统对话框的自定义颜色

tkinter的colorchooser.askcolor()本质是调用Tk的tk_chooseColor命令,该命令的自定义颜色列表存储在Tcl内部变量tk::colorchooser::customColors中,可以通过tkinter的tcl_eval方法读取:

import tkinter as tk
from tkinter import colorchooser

root = tk.Tk()
root.withdraw()  # 隐藏主窗口

# 打开颜色选择器,可添加自定义颜色
color_code = colorchooser.askcolor()

# 获取自定义颜色列表
custom_colors_str = root.tk.eval('tk::colorchooser::customColors')
custom_colors = custom_colors_str.split()  # 转换为列表格式

print("自定义颜色数值列表:", custom_colors)

注意:该方法依赖Tk的内部实现,不同操作系统(Windows、Linux、macOS)的兼容性可能有差异,部分平台可能无法正确读取系统颜色对话框的自定义颜色。

方法2:自行封装颜色选择器,手动维护自定义颜色

如果需要跨平台稳定的功能,推荐自行封装颜色选择逻辑,手动存储自定义颜色:

import tkinter as tk
from tkinter import colorchooser

class CustomColorPicker:
    def __init__(self):
        self.custom_colors = []  # 存储自定义颜色的列表

    def pick_color(self):
        selected_color = colorchooser.askcolor()
        if selected_color[1]:  # 确认用户选择了有效颜色
            self.custom_colors.append(selected_color[1])
            print(f"已添加自定义颜色: {selected_color[1]}")
        return selected_color

    def get_custom_colors(self):
        return self.custom_colors

# 使用示例
root = tk.Tk()
root.withdraw()

picker = CustomColorPicker()
picker.pick_color()  # 打开选择器添加颜色
picker.pick_color()

print("自定义颜色数值列表:", picker.get_custom_colors())

这种方式完全可控,不受平台限制,还可以扩展功能(比如将自定义颜色保存到本地文件,下次启动时加载)。

内容的提问来源于stack exchange,提问作者Unix

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:52:06