Python实践之用PySimpleGUI库开发可视化界面

本文介绍如何使用PySimpleGUI库开发图形化界面,包括短暂性窗口、持续性窗口、简单聊天窗口和文件选择器的实现,强调通过实践学习和理解组件交互与数据更新。
摘要由CSDN通过智能技术生成

作 者:高 亮
更新时间:2021年4月21日
更新说明:后续会陆续将一些实测例子更新到本文档,请大家注意文档更新时间的变化。

图形化界面开发中要解决的共同问题

  • 无论用什么编程语言来开发图形化界面,都要解决一些极为关键的问题
  • 问题1:如何创建一个窗口?如何关闭窗口?
  • 问题2:如何在窗口中放其他组件?比如文本框、按钮等
  • 问题3:如何得到窗口内组件与用户交互的数据?
  • 问题4:如何将处理过程中、过程后的数据更新到窗口内的组件上?

注:带着上述的问题,我们将结合具体的组件来学习PySimpleGUI库,这样会让我们知道自己在干什么,有一个清晰的思路

安装库

本人在windows系统下的CMD中进行安装,其他系统请参考其他教程。

pip install pysimplegui

官方说明书

最好的教程是官方的说明书,这里给出官方说明文档的地址

单击进入官方文档网址

在实践中学习

本文的所有示例代码皆为作者个人编辑和整理,欢迎大家转发分享但请注明出处,对于较大的例子我会将其单独整理为代码文件上传到资源区,文中也将只贴出部分重要的代码,但会在对应位置贴出下载链接。

1. 窗口类型

  1. 短暂性窗口:弹出一个窗口,收集到用户的指令信息后就关掉了
  2. 持续性窗口:窗口一直存在,用户点击关闭才关掉。可以循环读取和处理用户的交互事件

注:这部分的示例代码暂时无需弄懂语法,看到结果的不同就可以了,具体的组件使用后续会详细说明

短暂性窗口

  • 功能:短暂性窗口的使用,点击提交按钮后,用户在输入框中输入的内容被弹出
# 导入库
import PySimpleGUI as sg      

# 用列表设置窗口布局
layout = [[sg.Text('短暂性窗口.')],      
                 [sg.InputText()],      
                 [sg.Submit(), sg.Cancel()]]      
                 
# 创建主窗口
window = sg.Window('Window Title', layout)    

# 读取主窗口的事件和返回值
event, values = window.read()    
# 关闭主窗口
window.close()

text_input = values[0]    # 获取输入框的值
# 弹出输入的内容
sg.popup('你输入的内容是:', text_input)

在这里插入图片描述
在这里插入图片描述

持续性窗口

  • 功能:持续显示一个窗口,用户点击关闭才退出
import PySimpleGUI as sg      

sg.theme('DarkAmber')    # Keep things interesting for your users

layout = [[sg.Text('持续性窗口')],
          [sg.Input(key='-IN-')],
          [sg.Button('提交'), sg.Exit('退出')]]

window = sg.Window('持续性窗口示例', layout)

# 循环刷新窗口并处理事件
while True:
	# 读取事件和输入型组件的返回值
	event, values = window.read()
	print(event, values)
	# 点击关闭窗口,退出循环
	if event == '提交':
		text = values['-IN-']
		sg.popup(text)
	if event == sg.WIN_CLOSED or event == '退出':
		break

# 关闭窗口
window.close()

在这里插入图片描述

2. 简单的聊天窗口

  • 在这部分内容中,我们将致力于实现一个持续性窗口。窗口中有按钮和文本框两个组件。
  • 功能:用按钮来控制文本框内容,点击按钮,将输入框的内容添加到文本框。
# 导入库
import PySimpleGUI as sg

# 添加窗口内的组件,以列表形式封装
# 将窗口分成不同行不同列,一个列表是一行,行内的列表是列
layout = [
		# 
  • 13
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高亮分享

支持原创,欢迎打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值