import customtkinter as ctk from tkinter import filedialog import os # ...existing code... class SettingsPanel(ctk.CTkFrame): def __init__(self, master, settings, *args, **kwargs): super().__init__(master, *args, **kwargs) self.settings = settings # ...existing code... # Add browser cache directory setting self.cache_dir_label = ctk.CTkLabel(self, text="浏览器缓存目录:") self.cache_dir_label.grid( row=self.next_row, column=0, sticky="w", padx=10, pady=5 ) cache_dir_frame = ctk.CTkFrame(self, fg_color="transparent") cache_dir_frame.grid(row=self.next_row, column=1, sticky="ew", padx=10, pady=5) self.cache_dir_entry = ctk.CTkEntry(cache_dir_frame, width=250) self.cache_dir_entry.pack(side="left", fill="x", expand=True) self.cache_dir_entry.insert(0, self.settings.get("profiles_dir", "")) self.browse_cache_button = ctk.CTkButton( cache_dir_frame, text="浏览...", width=80, command=self.browse_cache_dir ) self.browse_cache_button.pack(side="right", padx=(5, 0)) self.next_row += 1 # ...existing code... def browse_cache_dir(self): """浏览并选择浏览器缓存目录""" directory = filedialog.askdirectory( title="选择浏览器缓存目录", initialdir=( self.cache_dir_entry.get() if self.cache_dir_entry.get() else os.path.expanduser("~") ), ) if directory: self.cache_dir_entry.delete(0, "end") self.cache_dir_entry.insert(0, directory) def save_settings(self): # ...existing code... self.settings["profiles_dir"] = self.cache_dir_entry.get() # ...existing code... # ...existing code...