Python图形界面
十五、列表元素的设定方法
1. 列表元素的书写方法
list = ['python', 'java', 'c++', 'php', 'html']
sg.Listbox(list)
sg.LB(list)
2. 按键元素的设定方法
sg.LB(list, size=(None, None))
import PySimpleGUI as sg
list = ['python', 'java', 'c++', 'php', 'html']
layout = [
[sg.LB(list,
default_values=None, # 默认选中的值或者列表
key='-LB', # 元素的唯一标识符
select_mode=None, # 选择模式,有效值包含如下4种。
# single,单选,更换时点击选择
# multiple,可以多选,逐一点击选择
# browse, 单选,鼠标按住也可以更换选择
# extended,可以多选,鼠标按住也可以扩展选择
enable_events=False, # 元素的事件属性
# 如果设定为 True,元素列表项目被选中时会发生事件
bind_return_key=False, # 绑定回车键
# 如果设定为True,回车键被按下时相当于此元素被点击
size=(30, 6), # 字符宽度,行高
disabled=False, # 元素是否禁用
auto_size_text=None, # 如果为True,元素自动根据内容大小调整
font=None, # 设置字体名称或者大小
no_scrollbar=False, # 如果为True,则没有滚动条
background_color=None, # 背景颜色
text_color=None, # 字体颜色设定
pad=None, # 元素间隔设定
tooltip=None, # 悬浮文本
right_click_menu=None, # 右击调出菜单
visible=True # 元素可见状态设定
)]
],
# 创建窗口
window = sg.Window('Python GUI', layout)
# 事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
print(event)
if event == None: # 窗口关闭事件
break
# 关闭窗口
window.close()
十六、列表元素的更新方法
1. 列表元素的更新方法
window[key].update()
window[key].Update()
2. 参数
values = None
disabled = None # 更新元素是否禁用
set_to_index = None # 高亮显示设定的索引
# 注意,单击只是高亮显示,并未选中。双击才是高亮显示+选中
# 单击获取值时,不用values(key),而是window[key].get()
scroll_to_index = None # 将设定的索引调到要显示第一行
select_mode = None # 更新元素的选择模式
visible = None # 更新元素的可见状态
十七、在窗口上调用字典里面的键和值
import PySimpleGUI as sg
dict = {'杨幂':'python', '赵丽颖':'java', '刘诗诗':'php', '郭敬明':'html'}
list = []
for i in dict:
list.append(i)
layout = [
[sg.LB(list, key='-LB-', size=(30,6), enable_events=True)],
[sg.T('语言'), sg.In(key='-YY-',size=(25))]
]
# 创建窗口
window = sg.Window('Python GUI', layout)
# 事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
print(event)
if event == None: # 窗口关闭事件
break
if event == '-LB-':
window['-YY-'].update(dict[values['-LB-'][0]])
# 关闭窗口
window.close()
十八、下拉菜单的设定方法
sg.Combo()
sg.InputCombo()
sg.DropDown()
sg.Drop()
- Combo 和 Listbox 最大的区别在于,可以输入,但是不能多选。Listbox 取得的值是存放在类别里面,但是 Combo 取得的值是对象本身。
import PySimpleGUI as sg
list = ['python', 'java', 'c++', 'php', 'html']
layout = [
[sg.Drop(list,
default_value=None, # 默认选中的值或者列表
key='-LB', # 元素的唯一标识符
size=(30, 6), # 字符宽度,行高
auto_size_text=None, # 如果为True,元素自动根据内容大小调整
background_color=None, # 背景颜色
text_color=None, # 字体颜色设定
enable_events=False, # 元素事件属性,如果设定为True,当元素被选中时,会发生一个事件
disabled=False, # 元素禁用状态设定
pad=None, # 元素间隔设定
tooltip=None, # 悬浮文本
readonly=False, # 元素只读属性,只能选择,不能输入内容
font=None, # 元素字体名称或者大小设定
visible=True # 元素可见状态设定
)]
],
# 创建窗口
window = sg.Window('Python GUI', layout)
# 事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
print(event)
if event == None: # 窗口关闭事件
break
# 关闭窗口
window.close()
十九、下拉菜单的更新方法及小练习
1. 下拉菜单的更新方法
window[key].update()
window[key].Update()
2. 下拉菜单可更新的属性
value=None, # 更新默认选中的选项
values=None, # 更新显示的所有下拉菜单文本
set_to_index=None, # 高亮显示设定的索引的文本
disabled=None, # 更新元素的禁用状态
readonly=None, # 更新元素是否只读
font=None, # 更新元素的字体名称或者大小
visible=None # 定义元素为不可见
import PySimpleGUI as sg
dict = {'杨幂':'python', '赵丽颖':'java', '刘诗诗':'php', '郭敬明':'html'}
list = []
for i in dict:
list.append(i)
layout = [
[sg.Combo(list,key='-LB-', size=(30,6), enable_events=True)],
[sg.T('语言'), sg.In(key='-YY-',size=(25))]
]
# 创建窗口
window = sg.Window('Python GUI', layout)
# 事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
print(event)
if event == None: # 窗口关闭事件
break
if event == '-LB-':
window['-YY-'].update(dict[values['-LB-']])
# 关闭窗口
window.close()