前言
上一篇文章介绍了制作基础的交互式窗口的方法(导入模块,定义布局,创建窗口,事件循环,关闭窗口)Python用户交互图形界面开发(1)
这篇介绍事件:窗口关闭,按钮点击以及其他元素事件。
event 事件
- 窗口关闭事件
- 按钮点击事件
- 其他元素事件
一、窗口关闭按钮(就是窗口上‘X’按钮)
if event==None: #第一种方式
break
if event==sg.WIN_CLOSED: #第二种方式
break
#如果忘记定义窗口关闭事件,点击“X”按钮后,依然会cpu占用100%。
二、按钮点击事件
if event=='提交': #点击确认按钮
print('已提交') #点击确认按钮后,就是点击事件发生时需要执行的任务
sg.Popup('内容已提交')#或者设置弹窗,在点击提交后出现弹窗提示
if event=='取消': #点击确认按钮
print('已取消') #点击取消按钮执行的任务
sg.Popup('内容已取消')
判断事件发生的四种方式:
if event=='退出': #如果点击了退出按钮
sg.Popup('已退出')#则执行弹窗,弹窗提示已退出
break #第一种
if event in('退出',None): #点击退出或者窗口关闭按钮,两个按钮都执行同一个任务
sg.Popup('已退出')
break #第二种
if event.startswith('开头') #第三种:只要点击了已括号内文字为开头的按钮就执行下方任务。*也就是按钮上的文字是——开头xxx
if event.endswith('结尾') #第四种:只要点击了已括号内文字为结尾的按钮就执行下方任务。*也就是按钮上的文字是——xx结尾
三、其他元素点击事件
文本,输入框,下拉菜单等元素的事件属性默认是关闭的,也就是点击不会触发事件,但是可以手动设置enable_events=Ture。
例如:
import PySimpleGUI as sg #导入模块并重命名
# 定义布局 确定行数
layout = [[sg.Text("What's your name?")],
[sg.Text('姓名',enable_events=Ture)], #手动设置事件
[sg.Button('Ok'), sg.Button('退出')]]
# 创建窗口
window = sg.Window('窗口标题', layout)
# 事件循环
while True:
event, values = window.read() #窗口读取————返回事件,值
if event == sg.WINDOW_CLOSED or event == '退出':
break
if event == '姓名':
sg.Popup('这是个文本') #为姓名文本设置一个触发事件,点击姓名这两个字就会弹出一个弹窗提示
# 关闭窗口
window.close()
未完待续