当前位置: 首页 > news >正文

PySimpleGUI,一个神奇的 Python 库!

https://segmentfault.com/a/1190000045317132?utm_source=sf-similar-article#item-3-3

大家好,我是涛哥,本文内容来自 涛哥聊Python ,转载请标原创。

更多Python学习内容:http://ipengtao.com

今天为大家分享一个神奇的 Python 库 - PySimpleGUI。

Github地址:https://github.com/PySimpleGUI/PySimpleGUI

在开发桌面应用程序时,图形用户界面(GUI)是一个重要的组成部分。虽然有许多 GUI 库可以选择,但它们通常需要编写大量的代码来实现复杂的界面。PySimpleGUI 是一个基于 Python 的 GUI 库,它通过简化的 API,使得开发 GUI 变得更加容易和高效。PySimpleGUI 支持多个 GUI 后端,如 Tkinter、Qt、WxPython 和 Remi,能够满足不同平台和需求的开发者。本文将详细介绍 PySimpleGUI 库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

安装
要使用 PySimpleGUI 库,首先需要安装它。可以通过 pip 工具方便地进行安装。

以下是安装步骤:

pip install PySimpleGUI
安装完成后,可以通过导入 PySimpleGUI 库来验证是否安装成功:

import PySimpleGUI as sg
print("PySimpleGUI 库安装成功!")
特性
简化的 API:提供简洁易用的 API,使得 GUI 开发更加简单和快速。
多后端支持:支持 Tkinter、Qt、WxPython 和 Remi 多个 GUI 后端,能够在不同平台上运行。
丰富的控件:提供多种控件,如按钮、文本框、复选框、单选按钮、进度条等,满足各种应用需求。
布局管理:支持灵活的布局管理,用户可以轻松地定义界面布局。
事件驱动编程:支持事件驱动编程模式,方便处理用户交互。
基本功能
创建一个简单窗口
使用 PySimpleGUI,可以方便地创建一个简单窗口。

import PySimpleGUI as sg

定义窗口的布局

layout = [[sg.Text('Hello, PySimpleGUI!')],
[sg.Button('OK')]]

创建窗口

window = sg.Window('Simple Window', layout)

事件循环

while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'OK':
break

window.close()
获取用户输入
PySimpleGUI 支持获取用户输入。

import PySimpleGUI as sg

定义窗口的布局

layout = [[sg.Text('请输入你的名字:')],
[sg.InputText()],
[sg.Button('提交'), sg.Button('取消')]]

创建窗口

window = sg.Window('用户输入', layout)

事件循环

while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == '取消':
break
if event == '提交':
sg.popup(f'你好, {values[0]}!')

window.close()
显示消息框
PySimpleGUI 支持显示消息框。

import PySimpleGUI as sg

显示消息框

sg.popup('这是一个消息框', '你可以在这里显示信息。')
高级功能
使用多窗口
PySimpleGUI 支持多窗口操作。

import PySimpleGUI as sg

定义主窗口的布局

layout1 = [[sg.Text('这是主窗口')],
[sg.Button('打开子窗口'), sg.Button('退出')]]

创建主窗口

window1 = sg.Window('主窗口', layout1)

事件循环

while True:
event, values = window1.read()
if event == sg.WIN_CLOSED or event == '退出':
break
if event == '打开子窗口':
# 定义子窗口的布局
layout2 = [[sg.Text('这是子窗口')],
[sg.Button('关闭')]]

    # 创建子窗口window2 = sg.Window('子窗口', layout2)# 子窗口事件循环while True:event2, values2 = window2.read()if event2 == sg.WIN_CLOSED or event2 == '关闭':breakwindow2.close()

window1.close()
自定义主题
PySimpleGUI 支持自定义主题。

import PySimpleGUI as sg

设置自定义主题

sg.theme('DarkAmber')

定义窗口的布局

layout = [[sg.Text('自定义主题')],
[sg.Button('OK')]]

创建窗口

window = sg.Window('自定义主题窗口', layout)

事件循环

while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'OK':
break

window.close()
使用图像和图形
PySimpleGUI 支持显示图像和绘制图形。

import PySimpleGUI as sg

定义窗口的布局

layout = [[sg.Image('example.png')],
[sg.Button('OK')]]

创建窗口

window = sg.Window('显示图像', layout)

事件循环

while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'OK':
break

window.close()
动态更新界面
PySimpleGUI 支持动态更新界面。

import PySimpleGUI as sg
import time

定义窗口的布局

layout = [[sg.Text('动态更新示例', key='-TEXT-')],
[sg.Button('开始'), sg.Button('停止')]]

创建窗口

window = sg.Window('动态更新窗口', layout)

事件循环

running = False
while True:
event, values = window.read(timeout=100)
if event == sg.WIN_CLOSED or event == '停止':
break
if event == '开始':
running = True

if running:window['-TEXT-'].update(time.strftime('%Y-%m-%d %H:%M:%S'))time.sleep(1)

window.close()
实际应用场景
文件选择对话框
在文件管理应用中,通过 PySimpleGUI 实现文件选择对话框,方便用户选择文件。

import PySimpleGUI as sg

定义窗口的布局

layout = [[sg.Text('请选择一个文件')],
[sg.Input(), sg.FileBrowse()],
[sg.OK(), sg.Cancel()]]

创建窗口

window = sg.Window('文件选择对话框', layout)

事件循环

while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Cancel'):
break
if event == 'OK':
sg.popup('你选择的文件是:', values[0])

window.close()
进度条
在需要显示任务进度的应用中,通过 PySimpleGUI 实现进度条,实时更新任务进度。

import PySimpleGUI as sg
import time

定义窗口的布局

layout = [[sg.Text('进度条示例')],
[sg.ProgressBar(100, orientation='h', size=(20, 20), key='-PROGRESS-')],
[sg.Button('开始'), sg.Button('停止')]]

创建窗口

window = sg.Window('进度条窗口', layout)

事件循环

while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == '停止':
break
if event == '开始':
for i in range(101):
window['-PROGRESS-'].update(i)
time.sleep(0.1)

window.close()
简易计算器
实现一个简易计算器,通过 PySimpleGUI 进行基本的加减乘除运算。

import PySimpleGUI as sg

定义窗口的布局

layout = [[sg.Input(size=(20, 1), key='-DISPLAY-')],
[sg.Button('7'), sg.Button('8'), sg.Button('9'), sg.Button('/')],
[sg.Button('4'), sg.Button('5'), sg.Button('6'), sg.Button('*')],
[sg.Button('1'), sg.Button('2'), sg.Button('3'), sg.Button('-')],
[sg.Button('0'), sg.Button('.'), sg.Button('='), sg.Button('+')],
[sg.Button('清除')]]

创建窗口

window = sg.Window('简易计算器', layout)

事件循环

current_input = ''
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
if event in '0123456789.':
current_input += event
window['-DISPLAY-'].update(current_input)
if event in '+-*/':
current_input += ' ' + event + ' '
window['-DISPLAY-'].update(current_input)
if event == '=':
try:
result = eval(current_input)
window['-DISPLAY-'].update(result)
current_input = str(result)
except Exception as e:
window['-DISPLAY-'].update('错误')
current_input = ''
if event == '清除':
current_input = ''
window['-DISPLAY-'].update(current_input)

window.close()
总结
PySimpleGUI 库是一个功能强大且易于使用的 GUI 开发工具,能够帮助开发者在 Python 项目中高效地创建和管理图形用户界面。通过提供简化的 API、多后端支持、丰富的控件和灵活的布局管理,PySimpleGUI 能够满足各种复杂的 GUI 应用需求。本文详细介绍了 PySimpleGUI 库的安装方法、主要特性、基本和高级功能,以及实际应用场景。希望本文能帮助大家全面掌握 PySimpleGUI 库的使用,并在实际项目中发挥其优势。

http://www.wxhsa.cn/company.asp?id=3179

相关文章:

  • c++ 的拷贝构造函数
  • 变异
  • 【笔记】类欧几里得算法
  • AQS的一些思考
  • DearPyGui-最强大的一款Python GUI工具
  • 2 模型评估与选择
  • TY-290ES计算器屏幕逆向
  • CF1559E
  • 笔记 哈希
  • 题解:CF566A Matching Names
  • Tarjan 求连通性相关
  • 暑假学习笔记
  • qoj #8557. Goldberg Machine 题解
  • centos7云主机磁盘清理过程纪要
  • 『随笔』我的唱歌练习史
  • 2025浙江省信息通信业职业技能竞赛-数据安全管理员竞赛-决赛wp
  • Java基础核心问题解析
  • 2025年浙江省信息通信业职业技能竞赛-数据安全管理员竞赛-初赛WriteUp
  • 九三阅兵实时记录+次日补
  • 铸网-2025”山东省工业互联网网络安全职业技能竞赛wp(职工组)
  • 视洞R33定制版改造自制IPC网络摄像头(可rtsp可web)
  • 二十一、流水线的冒险与处理
  • java线程的一些思考
  • 2025智能数据分类分级产品选型指南:构建数据治理的智能基座
  • 这是我的第一个博客
  • eqw
  • 2.第一个c语言项目
  • GitHub Copilot 2025年8月最新更新!
  • NOIP 模拟赛十五
  • 面试必备进程调度:fg,bg,jobs,ctrl+z,