如何获取Tkinter输入并写入settings.ini配置文件
没问题,我来帮你搞定这个需求!下面是完整的实现方案,包含可直接运行的代码和详细说明:
完整实现代码
import tkinter as tk from configupdater import ConfigUpdater import os def save_user_input(): # 获取用户输入并去除首尾空格 user_input = entry.get().strip() # 验证输入是否为1-10的整数 if user_input.isdigit(): rating = int(user_input) if 1 <= rating <= 10: # 构建配置文件的绝对路径 path = os.path.dirname(os.path.abspath(__file__)) config_path = os.path.join(path, "settings.ini") # 初始化ConfigUpdater并读取配置文件 updater = ConfigUpdater() updater.read(config_path) # 确保"Trading Settings"分区存在,不存在则自动创建 if "Trading Settings" not in updater: updater["Trading Settings"] = {} # 更新指定配置项的值 updater["Trading Settings"]["maximum_value_gain"].value = str(rating) # 将修改写入文件 updater.update_file() # 给用户显示成功提示 label_result.config(text=f"已成功保存你的评分:{rating}", fg="green") else: label_result.config(text="请输入1-10之间的整数!", fg="red") else: label_result.config(text="请输入有效的数字!", fg="red") # 初始化Tkinter窗口 root = tk.Tk() root.title("汽车喜爱程度评分") # 创建界面组件 label_question = tk.Label(root, text="你对汽车的喜爱程度从1-10是多少?", padx=20, pady=10) entry = tk.Entry(root, width=10) button_submit = tk.Button(root, text="提交", command=save_user_input) label_result = tk.Label(root, text="", padx=20, pady=10) # 布局组件(用pack快速实现基础布局) label_question.pack() entry.pack() button_submit.pack() label_result.pack() # 启动GUI主循环 root.mainloop()
关键细节说明
- 输入验证:我加了两层校验,先确保输入是纯数字,再检查是否在1-10的范围内,避免无效数据写入配置文件
- 路径处理:用
os.path模块构建绝对路径,不管脚本放在哪个目录下,都能准确找到settings.ini文件 - 分区容错:如果配置文件里没有"Trading Settings"这个分区,代码会自动创建,避免出现找不到分区的报错
- 用户反馈:操作后会显示成功或错误提示,让用户清楚知道操作结果
前置准备
如果你还没安装configupdater库,先运行以下命令完成安装:
pip install configupdater
内容的提问来源于stack exchange,提问作者TeisqI
相关产品推荐
相关产品推荐

