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

PySimpleGUI创建第三个窗口不显示问题求助

问题:PySimpleGUI第三个窗口无法显示,必须调用read()才能正常显示

我发现必须调用window3.read()才能让第三个窗口显示。使用PySimpleGUI创建第三个窗口时,代码无报错但窗口不显示,程序直接结束。原本想要实现一个供用户选座的复选框表格,测试后代码可正常执行(后续print语句能输出),但即使改为仅显示简单文本,窗口仍无法正常显示。

相关代码:

layout3 = [[sg.Text('Test')]
window3 = sg.Window('Choosing seats',layout3,element_justification='c')

解决方法

在PySimpleGUI中,窗口对象创建后必须调用read()方法,才能启动窗口的事件循环,让窗口保持显示状态。read()方法会阻塞程序,等待用户交互(比如点击关闭按钮、触发其他控件事件),否则程序会直接执行完后续代码后退出,窗口来不及渲染就被销毁了。

修正后的代码示例

import PySimpleGUI as sg

# 补全布局的闭合方括号(原代码存在语法错误)
layout3 = [[sg.Text('Test')]]
window3 = sg.Window('Choosing seats', layout3, element_justification='c')

# 调用read()启动事件循环,等待用户操作
event, values = window3.read()

# 操作完成后关闭窗口,释放资源
window3.close()

关键说明

  • read()是PySimpleGUI窗口的核心方法,负责处理窗口事件并维持窗口存活,没有它窗口会瞬间关闭
  • 如果只是需要短暂显示窗口,可结合time.sleep()和close(),但这种场景在实际交互中很少见
  • 多窗口场景下,要注意事件循环的管理,避免出现窗口阻塞或无法响应的问题

内容的提问来源于stack exchange,提问作者Someone Here

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:32:41