PySimpleGUI中常见功能元素和函数缩写形式示例

以下是PySimpleGUI中常见功能元素和函数缩写形式的具体代码示例,涵盖基础控件、弹窗、窗口操作等场景,附带详细注释说明:


1. 基础元素缩写示例

文本与输入框

import PySimpleGUI as sglayout = [[sg.T("用户名:")],  # sg.T 是 sg.Text 的缩写[sg.I(key="-USER-")],  # sg.I 是 sg.Input 的缩写[sg.T("密码:")],[sg.I(key="-PASS-", password_char="*")],  # 密码输入框
]window = sg.Window("登录界面", layout)
event, values = window.read()
window.close()print(f"用户名: {values['-USER-']}, 密码: {values['-PASS-']}")

按钮与复选框

layout = [[sg.B("提交", key="-SUBMIT-")],  # sg.B 是 sg.Button 的缩写[sg.CB("记住密码", key="-REMEMBER-")],  # sg.CB 是 sg.Checkbox 的缩写
]window = sg.Window("选项", layout)
event, values = window.read()
window.close()print(f"提交按钮被点击: {event == '-SUBMIT-'}")
print(f"记住密码: {values['-REMEMBER-']}")

2. 弹窗函数缩写示例

消息弹窗

sg.popup("操作成功!")  # 基础弹窗
sg.popup_ok("确认删除?", title="警告")  # 带OK按钮
sg.popup_yes_no("继续执行?")  # 带Yes/No按钮# 获取用户输入
name = sg.popup_get_text("请输入姓名:")
print(f"输入的姓名: {name}")

文件选择弹窗

file_path = sg.popup_get_file("选择文件", file_types=(("文本文件", "*.txt"),))
print(f"选择的文件: {file_path}")folder_path = sg.popup_get_folder("选择文件夹")
print(f"选择的文件夹: {folder_path}")

3. 窗口操作示例

动态更新元素

layout = [[sg.T("状态:", key="-STATUS-")],[sg.B("开始", key="-START-"), sg.B("停止", key="-STOP-")],
]window = sg.Window("动态更新", layout)while True:event, values = window.read()if event == sg.WINDOW_CLOSED:breakelif event == "-START-":window["-STATUS-"].update("运行中...", text_color="green")  # 更新文本和颜色elif event == "-STOP-":window["-STATUS-"].update("已停止", text_color="red")window.close()

非阻塞式读取

layout = [[sg.T("倒计时:"), sg.T("10", key="-COUNT-")], [sg.B("退出")]]
window = sg.Window("倒计时", layout)count = 10
while True:event, values = window.read(timeout=1000)  # 每1秒读取一次if event == sg.WINDOW_CLOSED or event == "退出":breakcount -= 1window["-COUNT-"].update(str(count))if count == 0:sg.popup("时间到!")breakwindow.close()

4. 布局与快捷键示例

多列布局

left_col = [[sg.B("按钮1")], [sg.B("按钮2")]]
right_col = [[sg.T("右侧内容")]]layout = [[sg.Column(left_col), sg.Column(right_col)],  # 使用 sg.Column 分列
]sg.Window("多列布局", layout).read(close=True)

快捷键绑定

layout = [[sg.I(key="-INPUT-", bind_return_key=True)],  # 回车键触发事件[sg.B("提交", key="-SUBMIT-")],
]window = sg.Window("快捷键", layout)
while True:event, values = window.read()if event == sg.WINDOW_CLOSED:breakelif event == "-INPUT-" or event == "-SUBMIT-":  # 回车或点击按钮均触发sg.popup(f"输入内容: {values['-INPUT-']}")window.close()

5. 进度条与通知示例

进度条

for i in range(100):sg.one_line_progress_meter("进度", i+1, 100, key="-METER-")  # 显示进度条if not sg.one_line_progress_meter_cancel():  # 检查是否取消pass

右下角通知

sg.popup_notify("任务完成!", title="通知", location=(1000, 600))  # 自定义位置

总结

  • 元素缩写sg.Tsg.Isg.Bsg.CB 等简化代码。
  • 弹窗函数sg.popupsg.popup_get_text 等快速交互。
  • 动态更新:通过 window[key].update() 实时修改界面。
  • 布局技巧:使用 sg.Columnsg.Frame 组织复杂界面。

这些示例覆盖了PySimpleGUI的核心功能,适合快速上手开发简单GUI应用。