在PySimpleGUI中,调试器窗口的打开方式主要有以下三种,每种方式均适用于不同调试场景,且均通过内置调试器实现:
方法一:使用show_debugger_window()
函数
- 适用场景:需要快速查看变量值或交互式执行代码时。
- 操作步骤:
- 在代码中任意位置调用
sg.show_debugger_window(location=(x, y))
,其中(x, y)
为窗口在屏幕上的坐标(如(10, 10)
)。 - 确保
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()
方法二:通过快捷键打开
- 适用场景:调试时需快速唤出调试器,避免修改代码。
- 操作步骤:
- 在程序运行时,按下键盘上的
BREAK
键(部分键盘可能标记为Cancel
或Pause
)。 - 调试器窗口将出现在屏幕右上角,显示当前局部变量快照。
- 在程序运行时,按下键盘上的
- 注意事项:
- 快捷键触发的调试器窗口仅显示创建时存在的变量,后续新增变量不会自动显示。
- 窗口大小固定,无法动态扩展。
方法三:在布局中添加调试按钮
- 适用场景:需要固定调试入口,或希望调试器与主界面风格一致。
- 操作步骤:
- 在窗口布局中添加
sg.Debug()
按钮,按钮将显示PySimpleGUI徽标(紫色和黄色)。 - 点击按钮后,调试器窗口将弹出,功能与
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()
调试器使用核心要点
- 异步读取必要性:若窗口使用阻塞式
read()
(无超时参数),需修改为非阻塞模式(如read(timeout=200)
),否则调试器无法获取执行周期。 - 超时值调整:默认超时值(如200ms)可能影响性能,可根据需求调整(如500ms或1000ms)。
- 变量监控:在
Variables
选项卡中,可手动添加需监控的变量,调试器将实时显示其值。 - REPL交互:通过
REPL
选项卡,可直接执行Python代码(如修改变量值、调用函数),支持实时调试。