当前位置: 首页 > news >正文

sg.如何打开PySimpleGUI调试器窗口?

在PySimpleGUI中,调试器窗口的打开方式主要有以下三种,每种方式均适用于不同调试场景,且均通过内置调试器实现:

方法一:使用show_debugger_window()函数

  • 适用场景:需要快速查看变量值或交互式执行代码时。
  • 操作步骤
    1. 在代码中任意位置调用sg.show_debugger_window(location=(x, y)),其中(x, y)为窗口在屏幕上的坐标(如(10, 10))。
    2. 确保read()函数包含超时参数(如window.read(timeout=500)),使调试器能通过异步调用获取周期。
  • 窗口功能
    • Variables选项卡:显示自动观察的变量列表,可手动添加需监控的变量。
    • REPL选项卡:提供Python交互式控制台,支持在程序环境中执行代码并检查变量值。
  • 示例代码
    import PySimpleGUI as sg
    sg.show_debugger_window(location=(10, 10))
    layout = [[sg.Text('Debugger Demo'), sg.Input('Input here'), sg.Button('Push Me')]]
    window = sg.Window('Debugger Demo', layout)
    while True:event, values = window.read(timeout=500)if event == sg.TIMEOUT_KEY:continueif event == sg.WIN_CLOSED:breakprint(event, values)
    window.close()
    

方法二:通过快捷键打开

  • 适用场景:调试时需快速唤出调试器,避免修改代码。
  • 操作步骤
    1. 在程序运行时,按下键盘上的BREAK键(部分键盘可能标记为CancelPause)。
    2. 调试器窗口将出现在屏幕右上角,显示当前局部变量快照。
  • 注意事项
    • 快捷键触发的调试器窗口仅显示创建时存在的变量,后续新增变量不会自动显示。
    • 窗口大小固定,无法动态扩展。

方法三:在布局中添加调试按钮

  • 适用场景:需要固定调试入口,或希望调试器与主界面风格一致。
  • 操作步骤
    1. 在窗口布局中添加sg.Debug()按钮,按钮将显示PySimpleGUI徽标(紫色和黄色)。
    2. 点击按钮后,调试器窗口将弹出,功能与show_debugger_window()一致。
  • 示例代码
    import PySimpleGUI as sg
    layout = [[sg.Text('Main Window')], [sg.Debug()], [sg.Button('Exit')]]
    window = sg.Window('Main Window', layout)
    while True:event, values = window.read()if event == sg.WIN_CLOSED or event == 'Exit':break
    window.close()
    

调试器使用核心要点

  1. 异步读取必要性:若窗口使用阻塞式read()(无超时参数),需修改为非阻塞模式(如read(timeout=200)),否则调试器无法获取执行周期。
  2. 超时值调整:默认超时值(如200ms)可能影响性能,可根据需求调整(如500ms或1000ms)。
  3. 变量监控:在Variables选项卡中,可手动添加需监控的变量,调试器将实时显示其值。
  4. REPL交互:通过REPL选项卡,可直接执行Python代码(如修改变量值、调用函数),支持实时调试。
http://www.hskmm.com/?act=detail&tid=19391

相关文章:

  • 第6篇、Flask 表单处理与用户认证完全指南:从零到实战
  • 威联通 NAS Docker 容器更新详解:从备份、推送到重建的全流程指南
  • parameter和defparam的简单用法
  • 9.27学习笔记
  • 开学日记
  • 生活随笔
  • UNIQUE VISION Programming Contest 2024 Autumn (AtCoder Beginner Contest 425)
  • 论文解读-《Less is More on the Over-Globalizing Problem in Graph Transformers》 - zhang
  • 作业2
  • NOIP模拟赛 十八
  • loguru 日志库快速入门
  • lca学习笔记
  • 内存访问流程
  • .NET操作Word实现智能文档处理 - 内容查找替换与书签操作
  • day19_添加 修改
  • day18_查询功能 合并servlet
  • NOIP模拟赛 十七
  • day22_用户模块
  • 2025 丹东店推荐:丽格门窗,用 20 年技术沉淀守护家的舒适
  • NOIP2025模拟赛23
  • step
  • 2025 呼和浩特店推荐:丽格门窗,用 20 年技术沉淀守护家的温度
  • 深入解析:浏览器端音视频处理新选择:Mediabunny 让 Web 媒体开发飞起来
  • 2025 宁波门窗店推荐:丽格门窗,甬城品质家居的安心之选
  • 2025 贵阳门窗店优选:丽格门窗,用 20 年匠心适配高原宜居需求
  • 2025 济南门窗店选购指南:丽格门窗凭硬实力圈粉品质家庭
  • “鹏云杯”第十二届山东省大学生网络安全技能大赛 -- Crypto -- WriteUp
  • 服务器系统时间不对?Linux系统时间修改与同步全面指南
  • 9/27
  • 2025 常熟门窗店优选:丽格门窗,20 年技术沉淀的品质之选