尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

[重要] PySimpleGU控件函数用法整理

[重要] PySimpleGU控件函数用法整理
📅 发布时间:2026/6/18 16:29:32

以下是基于PySimpleGUI 4.60.5版本的控件函数用法演示示例整理,按功能分类并编号说明:

一、基础控件

  1. Text(文本显示)

    import PySimpleGUI as sg
    layout = [[sg.Text('欢迎使用PySimpleGUI', key='-TEXT-', font=('Arial', 14))]]
    window = sg.Window('文本示例', layout)
    window.read()
    window.close()
    
    • 参数说明:key为控件唯一标识,font设置字体样式。
  2. Input(单行输入框)

    layout = [[sg.Text('用户名:'), sg.Input(key='-USERNAME-', size=(20,1))]]
    window = sg.Window('输入框示例', layout)
    event, values = window.read()
    print(f"输入内容:{values['-USERNAME-']}")
    window.close()
    
    • 参数说明:size控制输入框宽度,values字典存储输入值。
  3. Button(按钮)

    layout = [[sg.Input(key='-INPUT-')], [sg.Button('提交', key='-SUBMIT-'), sg.Button('退出')]]
    window = sg.Window('按钮示例', layout)
    while True:event, values = window.read()if event in (None, '退出'): breakif event == '-SUBMIT-': sg.popup(f"输入内容:{values['-INPUT-']}")
    window.close()
    
    • 事件处理:通过event判断按钮点击事件。

二、选择类控件

  1. Checkbox(复选框)

    layout = [[sg.Checkbox('记住密码', key='-REMEMBER-', default=True)]]
    window = sg.Window('复选框示例', layout)
    event, values = window.read()
    print(f"是否勾选:{values['-REMEMBER-']}")
    window.close()
    
    • 参数说明:default设置初始选中状态。
  2. Radio(单选按钮组)

    layout = [[sg.Text('性别:')],[sg.Radio('男', 'GENDER', key='-MALE-'), sg.Radio('女', 'GENDER', key='-FEMALE-')]]
    window = sg.Window('单选示例', layout)
    event, values = window.read()
    print(f"选择性别:{'男' if values['-MALE-'] else '女'}")
    window.close()
    
    • 参数说明:'GENDER'为单选组标识,确保互斥选择。
  3. Combo(下拉选择框)

    layout = [[sg.Text('城市:'), sg.Combo(['北京', '上海', '广州'], key='-CITY-', default_value='北京')]]
    window = sg.Window('下拉框示例', layout)
    event, values = window.read()
    print(f"选择城市:{values['-CITY-']}")
    window.close()
    
    • 参数说明:default_value设置默认选项。

三、高级控件

  1. Listbox(列表选择框)

    data = ['苹果', '香蕉', '橙子']
    layout = [[sg.Listbox(data, size=(10,3), key='-FRUITS-')],[sg.Button('确认'), sg.Button('退出')]]
    window = sg.Window('列表框示例', layout)
    while True:event, values = window.read()if event in (None, '退出'): breakif event == '确认':selected = values['-FRUITS-'][0]  # 返回选中项的列表sg.popup(f"选择水果:{selected}")
    window.close()
    
  2. Slider(滑动条)

    layout = [[sg.Text('音量调节:')],[sg.Slider(range=(0, 100), default_value=50, orientation='h', key='-VOLUME-')]]
    window = sg.Window('滑动条示例', layout)
    event, values = window.read()
    print(f"当前音量:{values['-VOLUME-']}")
    window.close()
    
    • 参数说明:orientation控制方向('h'水平,'v'垂直)。
  3. Multiline(多行文本框)

    layout = [[sg.Multiline('初始文本\n第二行', size=(30,5), key='-OUTPUT-')],[sg.Button('清空')]]
    window = sg.Window('多行文本示例', layout)
    while True:event, values = window.read()if event in (None, sg.WIN_CLOSED): breakif event == '清空': window['-OUTPUT-'].update('')  # 清空内容
    window.close()
    

四、文件与目录操作

  1. FileBrowse(文件选择器)

    layout = [[sg.Text('选择文件:'), sg.Input(key='-FILE-'), sg.FileBrowse()]]
    window = sg.Window('文件选择示例', layout)
    event, values = window.read()
    print(f"文件路径:{values['-FILE-']}")
    window.close()
    
  2. FolderBrowse(文件夹选择器)

    layout = [[sg.Text('选择文件夹:'), sg.Input(key='-FOLDER-'), sg.FolderBrowse()]]
    window = sg.Window('文件夹选择示例', layout)
    event, values = window.read()
    print(f"文件夹路径:{values['-FOLDER-']}")
    window.close()
    

五、容器与布局

  1. Frame(分组容器)

    frame_layout = [[sg.Text('姓名:'), sg.Input(key='-NAME-')],[sg.Text('年龄:'), sg.Input(key='-AGE-')]]
    layout = [[sg.Frame('用户信息', frame_layout)]]
    window = sg.Window('分组容器示例', layout)
    window.read()
    window.close()
    
  2. Tab(标签页)

    tab1_layout = [[sg.Text('标签页1内容')]]
    tab2_layout = [[sg.Text('标签页2内容')]]
    layout = [[sg.TabGroup([[sg.Tab('页面1', tab1_layout), sg.Tab('页面2', tab2_layout)]])]]
    window = sg.Window('标签页示例', layout)
    window.read()
    window.close()
    

六、弹出窗口

  1. Popup(快捷弹窗)

    sg.popup('操作成功!', title='提示', icon=sg.SYSTEM_TRAY_MESSAGE_ICON_INFORMATION)
    
    • 参数说明:title设置标题,icon可选系统图标类型。
  2. PopupGetFile(文件选择弹窗)

    file_path = sg.popup_get_file('请选择文件', title='文件选择')
    print(f"选中文件:{file_path}")
    

七、图形与图像

  1. Image(图片显示)

    layout = [[sg.Image('logo.png', key='-IMAGE-')]]  # 仅支持PNG/GIF格式
    window = sg.Window('图片示例', layout)
    window.read()
    window.close()
    
  2. Canvas(自定义绘图区)

    import matplotlib.pyplot as plt
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
    import numpy as npfig, ax = plt.subplots()
    ax.plot(np.random.rand(10))
    canvas_agg = FigureCanvasTkAgg(fig, master=sg.tk.create_tkinter_widget())
    layout = [[sg.Canvas(key='-CANVAS-', size=(400, 300))]]
    window = sg.Window('绘图示例', layout, finalize=True)
    canvas_agg.get_tk_widget().pack()
    window.read()
    window.close()
    
    • 说明:需结合Matplotlib实现复杂绘图。

八、状态与进度

  1. ProgressBar(进度条)

    layout = [[sg.ProgressBar(100, orientation='h', size=(20, 20), key='-PROGRESS-')],[sg.Button('开始')]]
    window = sg.Window('进度条示例', layout)
    progress_bar = window['-PROGRESS-']
    for i in range(101):window.read(timeout=10)progress_bar.update(i)
    window.close()
    
  2. StatusBar(状态栏)

    layout = [[sg.Input(key='-INPUT-')], [sg.StatusBar('就绪', key='-STATUS-')]]
    window = sg.Window('状态栏示例', layout)
    while True:event, values = window.read()if event in (None, sg.WIN_CLOSED): breakwindow['-STATUS-'].update('处理中...')  # 更新状态文本
    window.close()
    

九、菜单栏

  1. Menu(顶部菜单)
    menu_def = [['文件', ['打开', '保存', '退出']], ['帮助', '关于...']]
    layout = [[sg.Menu(menu_def)]]
    window = sg.Window('菜单示例', layout)
    while True:event, values = window.read()if event == '退出' or event == sg.WIN_CLOSED: breakif event == '打开': sg.popup('打开文件功能待实现')
    window.close()
    

关键注意事项

  1. 版本兼容性:PySimpleGUI 4.60.5为免费版本,5.0+版本需商业授权。
  2. 事件驱动:所有控件交互通过window.read()捕获事件。
  3. 控件更新:使用window[key].update(new_value)动态修改控件属性。
  4. 布局嵌套:通过列表嵌套实现复杂界面(如[[[sg.Input()]*3] for _ in range(3)]创建3x3输入网格)。

以上示例覆盖了PySimpleGUI 4.60.5的核心功能,可根据实际需求组合使用。

相关新闻

  • 使用XState测试分布式微服务的完整指南
  • 某些外审专家的意见,真是臭不可闻
  • 大模型赋能的具身智能:自主决策和具身学习技术最新综述

最新新闻

  • 深度解析LeVo架构:腾讯SongGeneration如何实现商业级AI音乐生成
  • JMeter核心元件深度解析:从原理到实战的性能测试设计指南
  • 2026年|如何免费降低AI率?10款实测工具测评(附论文降AIGC与学术规范技巧) - 降AI实验室
  • 力生电缆客户认可吗 十大口碑品牌横评选定再拍不交智商税 - mypinpai
  • swipe终极指南:如何在Jetpack Compose中实现专业级滑动操作
  • Flop与GraphQL/Relay集成:构建现代化API的完整方案

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号