Python图形界面
一、第一个界面
1. 了解模块代码的组成
- 导入库.(PySimpleGUI)
- 定义布局,确定行数
- 创建窗口
- 事件循环
- 关闭窗口
# 1.导入库
import PySimpleGUI as sg
# 2.定义布局,确定行数
layout = [
[sg.Text('请输入您的信息')],
[sg.Text('姓名'),sg.InputText('小帽')],
[sg.Text('性别'),sg.InputText('男')],
[sg.Text('国籍'),sg.InputText('中国')],
[sg.Button('确定'),sg.Button('取消')]
]
# 3.创建窗口
window = sg.Window('Python GUI', layout)
# 4.事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
if event == None: # 窗口关闭事件
break
# 5.关闭窗口
window.close()
二、如何定义窗口返回值 – 事件
1. 窗口关闭事件 。
- 窗口关闭按钮是一个特殊的按钮,在界面的右上角X
- 编写方法:
if event==None:#窗口关闭事件
break
if event==sg.WIN_CLOSED:#窗口关闭事件
break
- 注意!!!
- 定义窗口关闭事件是至关重要的,当你忘记定义窗口关闭事件,然后又点击了窗口右上角的X按钮,
- 它会默默的消耗你100%的CPU。
2. 按钮点击事件
if event=='确认': #判断事件是否发生
print('确认') #事件发生时要处理执行的任务
sg.Popup('执行确认任务')
if event=='取消': #判断事件是否发生
print('取消') #事件发生时要处理执行的任务
sg.Popup('执行取消任务')
3. 判断事件是否发生的几种方式
if event=='Exit':
sg.Popup('您点击了Exit')
break
if event in ('Exit',None):
sg.Popup('您点击了Exit或者窗口关闭按钮')
break
if event.startswith('确认'):
sg.Popup('您点击了Exit**的按钮')
break
if event.endswith('确认'):
sg.Popup('您点击了**Exit的按钮')
break
4. 其他元素事件
- 像文本元素,输入框,下拉菜单等事件属性默认是关闭的。 当手动设置他们的事件属性enable_events=True为真时,他们也将具有事件属性。
# 以文本元素举例
layout=[[sg.Text('OK',enable_events=True)]]
...
if event=='OK':
sg.Popup('文本元素OK的事件属性为真')
# 1.导入库
import PySimpleGUI as sg
# 2.定义布局,确定行数
layout = [
[sg.Text('请输入您的信息')],
[sg.Text('姓名',enable_events=True),sg.InputText('小帽')],
[sg.Text('性别'),sg.InputText('男')],
[sg.Text('国籍'),sg.InputText('中国')],
[sg.Button('确认'),sg.Button('取消')]
]
# 3.创建窗口
window = sg.Window('Python GUI', layout)
# 4.事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
if event == None: # 窗口关闭事件
break
if event == '确认':
sg.Popup('执行了确认任务')
if event == '取消':
sg.Popup('执行了取消任务')
if event == '姓名':
sg.Popup('这是个文本')
# 5.关闭窗口
window.close()
三、窗口读取返回值 – 值
1. 通过列表索引获取返回值-值
list=[1,2,3,4,5]
print(list)
# 输出结果为:[1, 2, 3, 4, 5]
print(list[0])
# 输出结果为:1
- 那么如何通过列有索引来获取窗口的返回值呢?
- 方法一:获取界面全部的值 print(values)
- 方法二:获取界面指定的值 print(values[0]) ,print(values[1])
# 1.导入库
import PySimpleGUI as sg
# 2.定义布局,确定行数
layout = [
[sg.Text('请输入您的信息')],
[sg.Text('姓名'),sg.InputText('小帽')],
[sg.Text('性别'),sg.InputText('男')],
[sg.Text('国籍'),sg.InputText('中国')],
[sg.Button('确认'),sg.Button('取消')]
]
# 3.创建窗口
window = sg.Window('Python GUI', layout)
# 4.事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
if event == None: # 窗口关闭事件
break
if event == '确认':
# print(values)
print(values[0])
# 5.关闭窗口
window.close()
2. 通过字典的键获取返回值-值
- 界面默认的返回值是通过列表索引获得指定值
- 但是当给元素设定唯一标识符key
- 则该元素无法通过列表索引
- 只能通过字典key进行索引。
- print(values[key])
# 1.导入库
import PySimpleGUI as sg
# 2.定义布局,确定行数
layout = [
[sg.Text('请输入您的信息')],
[sg.Text('姓名'),sg.InputText('小帽', key='name')],
[sg.Text('性别'),sg.InputText('男')],
[sg.Text('国籍'),sg.InputText('中国')],
[sg.Button('确认'),sg.Button('取消')]
]
# 3.创建窗口
window = sg.Window('Python GUI', layout)
# 4.事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
if event == None: # 窗口关闭事件
break
if event == '确认':
print(values['name'])
# 5.关闭窗口
window.close()