PySimpleGUI中的独立操作函数

在 PySimpleGUI 中,除了窗口和弹窗相关操作外,还有一些独立的功能函数和工具,可以用于调试、日志记录、系统交互等场景。以下是详细的分类和示例:


一、调试与日志输出

  1. sg.Print() / sg.easy_print()

    • 功能:将内容输出到 PySimpleGUI 的 Debug 窗口(而非控制台),适合调试时避免控制台输出混乱。
    • 示例
      import PySimpleGUI as sg
      sg.Print("调试信息:", 123, "变量值:", {"key": "value"})  # 输出到 Debug 窗口
      
    • 特点
      • 支持多参数混合输出(字符串、数字、字典等)。
      • 默认自动换行,可通过 end 参数控制(如 end='\t')。
  2. sg.cprint()

    • 功能:在 多线程环境 下安全地输出日志到 Debug 窗口,避免线程冲突。
    • 示例
      import threading
      def worker():
          sg.cprint("线程安全输出:", threading.current_thread().name)
      threading.Thread(target=worker).start()
      

二、系统交互与工具函数

  1. sg.SystemTray(系统托盘图标)

    • 功能:在系统托盘创建图标,支持右键菜单、消息提示等,适合后台运行程序。
    • 示例
      tray = sg.SystemTray(menu=["退出", lambda: exit()], icon="path/to/icon.ico")
      tray.notify("程序已启动", "提示")  # 显示托盘通知
      
  2. sg.clipboard_get() / sg.clipboard_set()

    • 功能:获取或设置系统剪贴板内容。
    • 示例
      sg.clipboard_set("复制到剪贴板的内容")
      print(sg.clipboard_get())  # 输出: 复制到剪贴板的内容
      
  3. sg.user_settings_get_filename()

    • 功能:获取用户配置文件路径(如 ~/.config/PySimpleGUI/settings.json),适合存储程序配置。
    • 示例
      config_path = sg.user_settings_get_filename(filename="my_app.json")
      print("配置文件路径:", config_path)
      
  4. sg.execute_command_subprocess()

    • 功能:执行系统命令并获取输出(类似 subprocess.run),但更易用。
    • 示例
      output, error = sg.execute_command_subprocess("ls -l", wait=True)
      print("命令输出:", output)
      

三、图形与多媒体

  1. sg.popup_animated()

    • 功能:显示一个带动画的弹窗(如加载动画),适合长时间操作时提示用户等待。
    • 示例
      # 显示加载动画(需提供 GIF 文件路径)
      sg.popup_animated("loading.gif", message="处理中...", time_between_frames=100)
      
  2. sg.play_sound()

    • 功能:播放音频文件(支持 WAV、MP3 等格式)。
    • 示例
      sg.play_sound("alert.wav")  # 播放提示音
      

四、网络与文件操作

  1. sg.url_open()

    • 功能:用默认浏览器打开指定 URL。
    • 示例
      sg.url_open("https://www.pysimplegui.org")  # 打开官网
      
  2. sg.folder_browse()(独立使用)

    • 功能:虽然通常用于窗口布局,但可通过 return_new_window=False 参数独立调用文件夹选择。
    • 示例
      folder_path = sg.folder_browse(title="选择文件夹", return_new_window=False)
      print("选择的文件夹:", folder_path)
      

五、高级功能

  1. sg.timeout_add() / sg.timeout_remove()

    • 功能:设置定时器回调(类似 JavaScript 的 setTimeout),适合定时任务。
    • 示例
      def callback():
          print("定时任务执行")
      timer_id = sg.timeout_add(2000, callback)  # 2秒后执行
      # 取消定时器: sg.timeout_remove(timer_id)
      
  2. sg.set_global_icon()

    • 功能:设置所有窗口的默认图标(需提供 .ico 文件路径)。
    • 示例
      sg.set_global_icon("app_icon.ico")  # 设置全局图标
      

六、跨平台兼容性工具

  1. sg.get_platform()

    • 功能:返回当前操作系统类型('Windows''Linux''Darwin'(macOS))。
    • 示例
      print("当前系统:", sg.get_platform())
      
  2. sg.read_all_windows()

    • 功能:读取所有窗口的事件(多窗口应用时使用)。

总结表

函数/工具 用途 示例场景
sg.Print() 调试输出到 Debug 窗口 打印变量值、日志
sg.cprint() 多线程安全输出 线程日志记录
sg.SystemTray 系统托盘图标 后台程序通知
sg.clipboard_*() 剪贴板操作 复制/粘贴数据
sg.popup_animated() 显示加载动画 长时间操作提示
sg.timeout_add() 定时器回调 定时任务执行
sg.url_open() 打开浏览器链接 跳转官网或文档

这些独立函数可以灵活组合使用,无需创建窗口即可实现复杂功能,适合快速开发工具类或后台程序。

posted @ 2026-01-15 09:55  nxhujiee  阅读(0)  评论(0)    收藏  举报