Python EasyGUI会议室预订程序:如何展示选中数据并保存至TXT?
问题1:弹窗无法展示所有选中数据
你需要在用户选择会议室、日期的环节,把用户实际选中的单个值存入变量,而不是只保留原始的选项列表:
- 选会议室时,将选中项赋值给
selected_room - 选日期时,赋值给
selected_day - 选时间后,弹窗内容拼接这三个变量即可(以Tkinter为例):
from tkinter import messagebox messagebox.showinfo("选中信息", f"会议室:{selected_room}\n日期:{selected_day}\n时间:{selected_time}")
核心逻辑:每个选择步骤都要单独记录用户的选中项,而非拿着完整选项列表去展示。
问题2:保存TXT存了所有列表内容 + 字典存储预订信息
先解决TXT保存问题
你当前用的rooms1、days1是完整的选项列表,所以会把所有内容写入文件。要替换成用户选中的单个值,同时改用追加模式避免覆盖旧记录:
with open("1.txt", "a") as f: # "a"是追加模式,"w"会清空文件重写 f.write(f"Vergaderruimte: {selected_room}\n") f.write(f"Dag: {selected_day}\n") f.write(f"Tijd: {selected_time}\n\n")
用字典管理预订信息的具体操作
把预订字典改成支持多条记录的结构(原示例只能存一条,不符合实际需求),每次新增预订时自动递增res_id:
# 初始化全局预订字典 reserved_rooms = { 'res_id': 0, 'reservations': [] # 用列表存多条预订记录 } # 点击确认按钮时执行的函数 def confirm_reservation(): global reserved_rooms # 替换成你实际获取选中值的代码 selected_room = "会议室3" selected_day = "1" selected_time = "09:00 - 10:00" # 生成新的预订条目 new_res = { 'room': selected_room, 'time': selected_time, 'day': selected_day } # 递增预订ID并添加新记录 reserved_rooms['res_id'] += 1 reserved_rooms['reservations'].append(new_res) # 同步保存到TXT(也可以用JSON格式存储,更易读取) with open("1.txt", "a") as f: f.write(f"预订ID: {reserved_rooms['res_id']}\n") f.write(f"Vergaderruimte: {selected_room}\n") f.write(f"Dag: {selected_day}\n") f.write(f"Tijd: {selected_time}\n\n")
如果想更规范地存储/读取预订数据,推荐用JSON格式:
import json # 保存字典到JSON文件 with open("reservations.json", "w") as f: json.dump(reserved_rooms, f, indent=4) # 从JSON文件读取预订记录 with open("reservations.json", "r") as f: reserved_rooms = json.load(f)
内容的提问来源于stack exchange,提问作者Pita
相关产品推荐
相关产品推荐

