import PySimpleGUI as sg
PySimpleGUI封装了tkinter,Qt,WxPython和Remi,以便您获得所有相同的小部件,但可以通过端口之间通用的更友好方式与它们进行交互.
sg.Text('文本框'),sg.Text(size=(12,1),key='output')
(1)“文本框”为框体显示的文字。
(2)size 为大小。默认值,其中大小约等于size=(50,1),也可以单独设置。size=(12,1)代码,12列,1行,即一行显示12个字符位的大小设置框。
(3)key 值为标识文本框,若定位或提取文本框中的内容时用到。
sg.Input(key='input')
(1)key 值为标识输入框,若定位或更新输入框中的内容时用到。
sg.Button('Show')
“Show”为按钮的名字 ,也可为按钮设置自己的 key 值
[ sg.Text("City", size = (20, 1)), sg.Combo(("北京", "上海", "深圳"), size=(10, 1), default_value="上海", key = "-CITY-")]
(1)第一项参数是一个 tuple,是下拉框里所有的选项,这里列出了 3 个城市。
(2)为了显示所有下拉框内容,我们将 size 指定为 (10, 1), 10 个英文字符宽,一个字符高。
(3)再没有选中的时候,Combo 默认显示 default_value 中的值。
sg.Popup('弹窗1','This is the first one')
sg.Popup('弹窗2','This is the second one')
sg.Popup('弹窗3','This is the third one')
(1)sg.Popup()括号里面:第一个’‘里面是标题,这个标题也会在窗口的第一行显示;第二个’'里面是内容。
(2)一个sg.Popup()代表一个窗口
sg.FileBrowse()
这个一般时组合使用,和输入框一起组合使用。
[sg.Input(),sg.FileBrowse()]
sg.FolderBrowse()
这个一般时组合使用,和输入框一起组合使用。
sg.InputText(size=(15,1)),sg.FolderBrowse()
list = [1,2,3]
layout = [
[sg.Listbox(values=list,size=(20,12),key='LIST',enable_events=True)]
]
sg.Checkbox('多选框',default=True)
# RADIO1 必有
sg.Radio('单选框','RADIO1',default=True)
“hello” 为文本框中的内容
sg.Multiline(default_text='hello')
)
sg.InputCombo(['box_1','box_2'],size=(20,3))
sg.Slider(range=(1,100),orientation='h',size=(34,20),default_value=85)
# (range=(1, 100):数值范围
# orientation=拖动方向 ‘h’ :横向 ‘v’:竖向
# size=(34, 20):大小
# default_value=85默认值
sg.InputOptionMenu('Menu_1','Menu_2',size=(20,2))
sg.Menu(menu_def, tearoff=True)
sg.Column(column1, background_color='')
sg.ProgressBar(10,orientation='h',size=())
# 10:进度条长度
# orientation=‘h’/v 方向
sg.Print('内容', text_color='', background_color='', font='')
不可以在组件中使用,只能在组件外使用
sg.OK(), sg.Cancel(),sg.Submit()等 #这三个按钮是自带的,默认的,不需要单独定义其作用
当然,也可以单独设置
sg.Button('Ok'), sg.Button('Cancel')
自带按钮
sg.FolderBrowse()=sg.FileBrowse(), sg.Submit(), sg.Cancel()
整体的布局是从上而下,同一列表中为从左往右,这个自己体验以下就可以知道啦
# 设置背景颜色
sg.theme('DarkBrown5')
# 查看所有主题
print(sg.theme_previewer())
# 获取主题名称列表
print(sg.theme_list())
(1)创建视图窗口,用二维列表 list 表示,用来存放组件
(2)每一个列表为每一行组件。
layout = [
[sg.Text('Filename')],
[sg.Input(),sg.FileBrowse()],
[sg.OK(),sg.Cancel()]
]
window = sg.Window('窗口名字',layout)
window.read()
window.close
根据定义组件的时候设置的 key 值来进行定位:
#定为窗体
weather_wind = window['TYPE']
#窗体跟新
weather_wind.update(s)
event 是触发 read 函数的组件 key,如果用户点击的是 window 上的 X,那这个 event 是 None,并且这是 event 为 None 的唯一情况,所以在循环中必须妥善处理 event 为 None 的情况,否则会出现异常情况。
event, values = window.read()
print(event, values)
可以看到输出的是字典类型的,此输出是上一篇博文天气小助手的输出哟。