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

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


1. 基础元素缩写示例

文本与输入框

import PySimpleGUI as sg

layout = [
    [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:
        break
    elif 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 == "退出":
        break
    count -= 1
    window["-COUNT-"].update(str(count))
    if count == 0:
        sg.popup("时间到!")
        break

window.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:
        break
    elif 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应用。

posted @ 2025-09-29 09:15  nxhujiee  阅读(13)  评论(0)    收藏  举报