⚠注意: 一定要结合官方文档来看,相比tkinter的文档,这个可谓是非常清晰友好了,并且里面有许多demo,可以从中学习到很多
PySimpleGUI官网
安装
pip install pysimplegui
# 或者
pip3 install pysimplegui
安装好之后就可以导入了
基本框架
- import导入
- Layout布局
- Window创建窗口
- Event loop事件循环
- Close关闭
1.导入
根据官方推荐,我们这样子导入:
import PySimpleGUI as sg
2. Layout布局
在PySimpleGUI中,布局是使用列表来初步排列位置与顺序的:
layout = [ # 这是第一行的Text文本
[sg.Text('Some text on Row 1')],
# 这是第二行,有两个控件,一个是Text文本框,另一个是输入框
[sg.Text('Enter something on Row 2'), sg.InputText()],
# 这是第三行,同样有两个控件,都是按钮Button
[sg.Button('Ok'), sg.Button('Cancel')]
]
下图便是生成的布局:
3. 创建窗口
window = sg.Window('Window Title', layout)
第一个是标题,第二是布局参数
4.event loop事件循环
与tkinter不同,pysimplegui的事件循环类似下图:
在这里我们的窗口需要不断read
(读取)窗口发生的变化来监听事件:
while True: # 不断循环
#---------------重点-----------
event, values = window.read() # 窗口读取事件的发生
#--------------------------------
if event == sg.WIN_CLOSED or event == 'Cancel': # 如果点击cancel或者关闭,就会退出循环
break
print('You entered ', values[0]) # 输入的值
event
指的是各种事件,如点击,输入…
values
代表的是这些事件附带的值,如checkbox的是否√,输入了什么…
注意,values返回的是一个字典:
print('You entered ', values[0]) # 输入的值
中的values[0]
便是python中的字典获取键values[KEY]
5.close窗口
当我们退出循环的时候需要关闭窗口:
window.close()
全部代码
import PySimpleGUI as sg
sg.theme('DarkAmber') # Add a touch of color
# All the stuff inside your window.
layout = [ [sg.Text('Some text on Row 1')],
[sg.Text('Enter something on Row 2'), sg.InputText()],
[sg.Button('Ok'), sg.Button('Cancel')] ]
# Create the Window
window = sg.Window('Window Title', layout)
# Event Loop to process "events" and get the "values" of the inputs
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel
break
print('You entered ', values[0])
window.close()
总结
这仅仅是初步介绍,接下来我会讲解官方Demo该如何使用