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

Tkinter便签应用:保存并恢复Text组件的字体与背景色

Tkinter便签保存/恢复组件样式实现方案

核心思路

  • 用JSON文件存储组件的字体、背景色配置
  • 窗口关闭时捕获事件,保存当前样式到文件
  • 应用启动时读取配置文件,加载样式到组件

具体实现步骤

1. 导入必要模块

import tkinter as tk
import json
import os

2. 指定配置文件路径

选择和脚本同目录的JSON文件存储配置:

CONFIG_FILE = "sticky_config.json"

3. 编写保存配置的函数

窗口关闭时调用该函数,提取组件样式并写入文件:

def save_config(input_widget):
    # 获取字体信息:解析Tkinter返回的字体元组
    font = input_widget.cget("font")
    font_name = font[0]
    font_size = font[1]
    font_style = font[2] if len(font) > 2 else ""
    
    # 获取背景色
    bg_color = input_widget.cget("bg")
    
    # 构造配置字典并写入文件
    config = {
        "font": {
            "name": font_name,
            "size": font_size,
            "style": font_style
        },
        "bg_color": bg_color
    }
    
    with open(CONFIG_FILE, "w") as f:
        json.dump(config, f, indent=4)

4. 编写加载配置的函数

应用启动时读取配置,将样式应用到组件:

def load_config(input_widget):
    if not os.path.exists(CONFIG_FILE):
        return  # 无配置文件则使用默认样式
    
    with open(CONFIG_FILE, "r") as f:
        config = json.load(f)
    
    # 组装字体参数并设置组件样式
    font_config = config["font"]
    font = (font_config["name"], font_config["size"], font_config["style"])
    input_widget.config(font=font, bg=config["bg_color"])

5. 整合到便签窗口类

修改你的StickyNoteWindow类,绑定加载和保存逻辑:

class StickyNoteWindow(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("便签")
        
        # 创建文本输入组件(沿用你原有的组件定义)
        self.inputtxt = tk.Text(self, wrap=tk.WORD)
        self.inputtxt.pack(fill=tk.BOTH, expand=True)
        
        # 启动时加载保存的样式
        load_config(self.inputtxt)
        
        # 绑定窗口关闭事件:先保存配置再关闭
        self.protocol("WM_DELETE_WINDOW", self.on_close)
    
    def on_close(self):
        save_config(self.inputtxt)
        self.destroy()

# 启动应用
if __name__ == "__main__":
    app = StickyNoteWindow()
    app.mainloop()

注意事项

  • 若你的输入组件是Entry而非Text,代码完全通用,cget是Tkinter组件的通用方法
  • 字体样式为空时,Tkinter会自动使用默认样式
  • 确保脚本拥有当前目录的读写权限,否则配置文件无法正常保存/读取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 05:36:06