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

如何存储Tkinter用户选择的背景颜色,供下次程序打开时加载使用?

解决方案

你可以通过本地配置文件持久化存储用户选择的颜色值,程序启动时优先读取配置文件里的颜色即可,完整可运行代码如下:

import tkinter as tk
from tkinter import colorchooser
import json
import os

# 配置文件路径,和脚本同目录
CONFIG_PATH = "bg_config.json"
# 默认背景色
DEFAULT_BG = "#800080"

root = tk.Tk()
root.title("背景色选择工具")
root.geometry("800x600")

# 启动时读取配置
def load_bg_color():
    if os.path.exists(CONFIG_PATH):
        try:
            with open(CONFIG_PATH, "r", encoding="utf-8") as f:
                config = json.load(f)
                return config.get("bg_color", DEFAULT_BG)
        except:
            # 配置文件损坏时用默认值
            return DEFAULT_BG
    else:
        return DEFAULT_BG

# 保存颜色到配置文件
def save_bg_color(color):
    with open(CONFIG_PATH, "w", encoding="utf-8") as f:
        json.dump({"bg_color": color}, f)

# 初始化背景色
current_bg = load_bg_color()
root["bg"] = current_bg

def choose_color():
    color_code = colorchooser.askcolor(title="选择背景色")
    # 过滤用户点取消的情况
    if color_code and color_code[1]:
        selected_color = color_code[1]
        root["bg"] = selected_color
        # 选完立刻写入配置持久化存储
        save_bg_color(selected_color)

tk.Button(root, text="选择背景色", command=choose_color).place(x=400, y=300)

root.mainloop()

关键逻辑说明

  • 程序启动时会先读取同目录下的bg_config.json文件,读取到合法颜色值就直接用作背景,读取失败或者文件不存在就用默认紫色
  • 用户选完颜色后立刻写入配置文件,下次启动自动加载存储的颜色
  • 增加了异常处理逻辑,就算配置文件损坏也不会报错,自动回退到默认颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:54:01