如何存储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
相关产品推荐
相关产品推荐

