PySimpleGUI中的独立操作函数
在 PySimpleGUI 中,除了窗口和弹窗相关操作外,还有一些独立的功能函数和工具,可以用于调试、日志记录、系统交互等场景。以下是详细的分类和示例:
一、调试与日志输出
-
sg.Print()/sg.easy_print()- 功能:将内容输出到 PySimpleGUI 的 Debug 窗口(而非控制台),适合调试时避免控制台输出混乱。
- 示例:
import PySimpleGUI as sg sg.Print("调试信息:", 123, "变量值:", {"key": "value"}) # 输出到 Debug 窗口 - 特点:
- 支持多参数混合输出(字符串、数字、字典等)。
- 默认自动换行,可通过
end参数控制(如end='\t')。
-
sg.cprint()- 功能:在 多线程环境 下安全地输出日志到 Debug 窗口,避免线程冲突。
- 示例:
import threading def worker(): sg.cprint("线程安全输出:", threading.current_thread().name) threading.Thread(target=worker).start()
二、系统交互与工具函数
-
sg.SystemTray(系统托盘图标)- 功能:在系统托盘创建图标,支持右键菜单、消息提示等,适合后台运行程序。
- 示例:
tray = sg.SystemTray(menu=["退出", lambda: exit()], icon="path/to/icon.ico") tray.notify("程序已启动", "提示") # 显示托盘通知
-
sg.clipboard_get()/sg.clipboard_set()- 功能:获取或设置系统剪贴板内容。
- 示例:
sg.clipboard_set("复制到剪贴板的内容") print(sg.clipboard_get()) # 输出: 复制到剪贴板的内容
-
sg.user_settings_get_filename()- 功能:获取用户配置文件路径(如
~/.config/PySimpleGUI/settings.json),适合存储程序配置。 - 示例:
config_path = sg.user_settings_get_filename(filename="my_app.json") print("配置文件路径:", config_path)
- 功能:获取用户配置文件路径(如
-
sg.execute_command_subprocess()- 功能:执行系统命令并获取输出(类似
subprocess.run),但更易用。 - 示例:
output, error = sg.execute_command_subprocess("ls -l", wait=True) print("命令输出:", output)
- 功能:执行系统命令并获取输出(类似
三、图形与多媒体
-
sg.popup_animated()- 功能:显示一个带动画的弹窗(如加载动画),适合长时间操作时提示用户等待。
- 示例:
# 显示加载动画(需提供 GIF 文件路径) sg.popup_animated("loading.gif", message="处理中...", time_between_frames=100)
-
sg.play_sound()- 功能:播放音频文件(支持 WAV、MP3 等格式)。
- 示例:
sg.play_sound("alert.wav") # 播放提示音
四、网络与文件操作
-
sg.url_open()- 功能:用默认浏览器打开指定 URL。
- 示例:
sg.url_open("https://www.pysimplegui.org") # 打开官网
-
sg.folder_browse()(独立使用)- 功能:虽然通常用于窗口布局,但可通过
return_new_window=False参数独立调用文件夹选择。 - 示例:
folder_path = sg.folder_browse(title="选择文件夹", return_new_window=False) print("选择的文件夹:", folder_path)
- 功能:虽然通常用于窗口布局,但可通过
五、高级功能
-
sg.timeout_add()/sg.timeout_remove()- 功能:设置定时器回调(类似 JavaScript 的
setTimeout),适合定时任务。 - 示例:
def callback(): print("定时任务执行") timer_id = sg.timeout_add(2000, callback) # 2秒后执行 # 取消定时器: sg.timeout_remove(timer_id)
- 功能:设置定时器回调(类似 JavaScript 的
-
sg.set_global_icon()- 功能:设置所有窗口的默认图标(需提供
.ico文件路径)。 - 示例:
sg.set_global_icon("app_icon.ico") # 设置全局图标
- 功能:设置所有窗口的默认图标(需提供
六、跨平台兼容性工具
-
sg.get_platform()- 功能:返回当前操作系统类型(
'Windows'、'Linux'、'Darwin'(macOS))。 - 示例:
print("当前系统:", sg.get_platform())
- 功能:返回当前操作系统类型(
-
sg.read_all_windows()- 功能:读取所有窗口的事件(多窗口应用时使用)。
总结表
| 函数/工具 | 用途 | 示例场景 |
|---|---|---|
sg.Print() |
调试输出到 Debug 窗口 | 打印变量值、日志 |
sg.cprint() |
多线程安全输出 | 线程日志记录 |
sg.SystemTray |
系统托盘图标 | 后台程序通知 |
sg.clipboard_*() |
剪贴板操作 | 复制/粘贴数据 |
sg.popup_animated() |
显示加载动画 | 长时间操作提示 |
sg.timeout_add() |
定时器回调 | 定时任务执行 |
sg.url_open() |
打开浏览器链接 | 跳转官网或文档 |
这些独立函数可以灵活组合使用,无需创建窗口即可实现复杂功能,适合快速开发工具类或后台程序。

浙公网安备 33010602011771号