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

PySimpleGUI巴士订票系统二维码扫描无可用数据求助

问题排查与修复

你的二维码扫描提示“无可用数据”的核心原因是参数传递错误+重复生成覆盖文件,具体问题和修复方案如下:

问题分析

  1. 参数传递完全错误:在Reserve Ticket事件处理中,你先是把用户输入的字典values直接传给了二维码生成函数,而非经过inputformat格式化后的预约详情字符串;接着又把第一次生成的二维码文件路径再次传给生成函数,导致最终生成的二维码内容是本地文件路径,根本不是你需要的预约信息。
  2. 重复生成覆盖文件:两次调用qrcode_gen都会将图片保存为Qr.png,第二次生成的文件直接覆盖了第一次的,界面最终显示的是内容为文件路径的二维码,扫描自然无法识别有效数据。

修复后的代码

将Reserve Ticket事件的代码替换为以下内容:

elif event == 'Reserve Ticket':
    reservation_list(values, reservations)
    # 获取格式化后的预约详情
    ticket_info = inputformat(values)
    psg.popup(ticket_info)
    # 用预约详情生成二维码并获取路径
    qr_image_path = qrcode_gen(ticket_info)
    # 更新界面上的二维码图片
    window['-IMG-'].update(filename=qr_image_path)

额外优化建议

  • 给二维码文件名添加唯一标识(比如时间戳),避免多次预约时覆盖旧二维码:
    修改qrcode_gen函数的文件名部分:
    from datetime import datetime
    # ...
    file_name = f'Qr_{datetime.now().strftime("%Y%m%d%H%M%S")}.png'
    
  • 增加输入合法性校验,比如检查姓名、手机号是否为空,是否选择了目的地和性别,避免空值导致程序报错。

内容的提问来源于stack exchange,提问作者Francis Boateng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:15:39