pySimpleGUI-学习篇
(0) 通用属性
""" 设定方法 """
key = '-Text-',
size = (None, None),
font = None,
auto_size_text = None,
enable_events = None,
relief = None,
border_width = None,
text_color = None,
background_color = None,
justification = None,
pad = None,
right_click_menu = ['1', ['1', '2', '3']],
grab = None,
tooltip = None,
visible = True
button_color = None,
disabled = False,
""" 更新方法 """
value = '',
disabled = None,
select = None,
visible = None,
text_color = None,
background_color = 'red',
move_cursor_to = 'end'
(1) 编写第一个界面
import PySimpleGUI as gui
page = [
[gui.Text('请输入您的基本信息')],
[gui.Text("姓名"), gui.InputText()],
[gui.Text("性别"), gui.InputText()],
[gui.Text("国籍"), gui.InputText()],
[gui.Button("确定"), gui.Button("取消")]
]
page_window = gui.Window('Py_GUI', page)
while True:
event, values = page_window.read()
if event == None:
break
page_window.close()
""" 模板 """
(2) 定义窗口返回值|事件
""" 公用部分 """
import PySimpleGUI as gui
page = [
[gui.Text('请输入您的基本信息')],
[gui.Text("姓名"), gui.InputText()],
[gui.Text("性别"), gui.InputText()],
[gui.Text("国籍", enable_events=True), gui.InputText()],
[gui.Button("确定"), gui.Button("取消")]
]
page_window = gui.Window('Py_GUI', page)
""" 非公用部分 """
""" 方法一 """
""" 方法二 """
""" 方法三 """
while True:
event, values = page_window.read()
if event == None:
break
if event.startswith("确定"):
gui.Popup('执行确定')
if event.endswith("取消"):
gui.Popup('执行取消')
if event == '国籍':
gui.Popup('这是个文本,点了也没用')
page_window.close()
(3) 从窗口读取返回值
""" 第一部分 """
""" 第二部分 """
import PySimpleGUI as gui
page = [
[gui.Text('请输入您的基本信息')],
[gui.Text("姓名"), gui.InputText(key='name')],
[gui.Text("性别"), gui.InputText(key='gender')],
[gui.Text("国籍"), gui.InputText(key='nationality')],
[gui.Button("确定"), gui.Button("取消")]
]
page_window = gui.Window('Py_GUI', page)
while True:
event, values = page_window.read()
if event == None:
break
if event == '确定':
print(values)
page_window.close()
(4) 主题
import PySimpleGUI as psg
while True:
psg.theme('')
psg.Popup("弹窗演示")
if input(" q 退出").strip().lower() == 'q':
break
(5) 修改主题
import PySimpleGUI as psg
psg.theme('LightBlue2')
psg.Popup('演示弹窗', "请记住!当前按键字体‘OK’的颜色")
psg.theme_button_color(('yellow', '#7186C7'))
psg.Popup("演示弹窗", "按键字体‘OK’已经变黄色")
(6) 自定义窗口元素
""" for循环快速布局 """
""" 另一种组合方式进行布局"""
import PySimpleGUI as sg
layout = [
[sg.Text("请输入基本信息")],
[sg.Text("姓名"), sg.In()],
[sg.Text("性别")] + [sg.In()],
[sg.Text("国籍")] + [sg.In()],
[sg.B('确认'), sg.B('取消')]
]
w = sg.Window('Py pySimpleGUI', layout)
while True:
event, values = w.read()
if event == None:
break
w.close()
(7) 文本元素的设定方法
import PySimpleGUI as sg
text = """
江南春
唐 杜牧
千里莺啼绿映红,
水村山郭酒旗风。
南朝四百八十寺,
多少楼台烟雨中。
"""
layout = [
[sg.Text(text,
key='-Text-',
size=(30, 20),
font=None,
auto_size_text=None,
enable_events=None,
relief=None,
border_width=None,
text_color=None,
background_color=None,
justification=None,
pad=None,
right_click_menu=['1', ['1', '2', '3']],
grab=None,
tooltip=None,
visible=True
)]
]
window = sg.Window("Test_GUI", layout)
while True:
event, values = window.read()
if event == None:
break
if event == '-Text-':
sg.popup('运行了一个点击事件')
window.close()
(8) 文本元素的更新方法
import PySimpleGUI as sg
layout = [
[sg.T('Hello World!', key='-Text-')],
[sg.T('Think you!', key='-Fun-')],
[sg.B('确定')]
]
window = sg.Window('hello', layout)
while True:
event, values = window.read()
print(event)
if event == None:
break
if event == '确定':
window['-Text-'].update(
value='谢谢',
background_color='black',
text_color='red',
font=('黑体', 30),
visible=None
)
window.close()
(9) 单行输入框元素的设定方法
import PySimpleGUI as sg
layout = [
[sg.T('账号:'), sg.In()],
[sg.T('密码:'), sg.In(
'请输入您的密码',
key='-INPUT-',
size=(None, None),
disabled=None,
password_char='',
justification='l',
background_color=None,
text_color=None,
font=('宋体', 10),
tooltip='这是一个提示',
border_width=5,
enable_events=False,
do_not_clear=True,
focus=False,
pad=None,
disabled_readonly_background_color=None,
disabled_readonly_text_color=None,
right_click_menu=None,
visible=True,
)]
]
window = sg.Window('Python pySimpleGUI', layout)
while True:
event, values = window.read()
print(event)
if not event:
break
window.close()
(10) 单行输入框的更新方法
import PySimpleGUI as sg
layout = [
[[sg.InputText(i, key=i)] for i in 'abcd'],
[sg.Button('确定'), sg.Button('取消')]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event)
if not event:
break
if event == '确定':
window['userDate.txt'].SetFocus()
window['userDate.txt'].SetTooltip('请输入XXX')
window['d'].update(
value='',
disabled=None,
select=None,
visible=None,
text_color=None,
background_color='red',
move_cursor_to='end'
)
window.close()
(11) 按键元素的设定及更新方法
import PySimpleGUI as sg
layout = [
[sg.T('账号', size=(5, 1)), sg.In()],
[sg.T('密码', size=(5, 1)), sg.In()],
[sg.B('确认'), sg.B(
button_text="取消",
key='-CENCEL-',
button_color=(None, None),
tooltip=None,
disabled=False,
image_filename=None,
image_data=None,
image_size=(None, None),
image_subsample=None,
border_width=None,
size=(None, None),
auto_size_button=None,
disabled_button_color=None,
font=None,
bind_return_key=False,
focus=False,
pad=None,
visible=True,
)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
if not event:
break
window['-CENCEL-'].update(
text=None,
button_color=(None, None),
disabled=None,
image_data=None,
image_filename=None,
visible=None,
image_subsample=None,
disabled_button_color=(None, None),
image_size=None
)
window.close()
(12) 列表元素的设定方法
import PySimpleGUI as sg
elist = ['python', 'java', 'c++', 'php', 'html']
""" sg.Listbox(elist, size=(None, None) 可以缩写成 sg.LB(elist, size=(None, None))"""
layout = [
[sg.Listbox(elist,
default_values="java",
key='-LB-',
select_mode=None,
enable_events=True,
bind_return_key=False,
size=(30, 6),
disabled=False,
auto_size_text=None,
font=None,
no_scrollbar=False,
background_color=None,
text_color=None,
pad=None,
tooltip=None,
right_click_menu=None,
visible=True
)]
]
window = sg.Window("pySimpleGUI", layout)
while True:
event, values = window.read()
print(event)
if not event:
break
window.close()
(13) 列表元素的更新方法
"""
方法:window[key].update()
可以更新的属性和参数1
values=None, 就是默认显示的列表或元组内容
# 可以用 values=... 更新元组或者列表,列举如下
# e_tuple = (1, 3)
# e_list = [1, 3]
# values = e_tuple
# values = e_list
disabled=None,
# bool: 更新元素是否禁用,举例如下
# disabled=True
# disabled=Fales
set_to_index=None,
# 高亮显示设置的索引,Union[int, list, tuple], 列举如下
select_mode=None
# 更新元素的选择模式,有效值包含如下4种
# single , 单选,更换时点击选择
# multiple , 可以多选,鼠标按住也可以扩展选择
visible=None
# bool:更新元素的可见状态
# visible=True
# visible=False
"""
import PySimpleGUI as sg
list1 = ['Python', 'html', 'php', 'avp', 'mml', 'fjl', 'tho', 'Java', 'c++']
list2 = ['小明同学', '小叶同学', '小花同学', '小美同学', '小壮同学']
layout = [
[sg.T('信息界面', size=(8, 1))],
[sg.LB(list1, key='-list-', size=(30, 2))],
[sg.B('编程语言'), sg.B('程序员')],
[sg.B("高亮显示"), sg.B("跳转到Java")]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event)
key = '-list-'
if not event:
break
if event == '程序员':
window[key].update(values=list2)
if event == '编程语言':
window[key].update(values=list1)
if event == "高亮显示":
window[key].update(set_to_index=0)
print(window[key].get())
if event == "跳转到Java":
window[key].update(scroll_to_index=8)
print(window[key])
window.close()
(14) 下拉菜单的设定方法
"""
下拉菜单的书写方法
sg.Combo()
or
sg.InputCombo()
or
sg.DropDown()
or
sg.Drop()
Combo 和 Listbox 最大的区别在于,前者可以输入,但是不能多选,
Listbox 取得的值是存放在列表里面的,但是 Combo 取得的值是对象本身
"""
import PySimpleGUI as sg
list1 = ['Python', 'Java', 'C', 'c++', 'Gui']
list2 = ['小明', '小王', '小花', '小壮', '小美']
layout = [
[sg.Drop(list1,
default_value='Java',
key=None,
size=(30, 6),
auto_size_text=None,
background_color=None,
text_color=None,
enable_events=True,
disabled=False,
pad=None,
tooltip=None,
readonly=False,
font=None,
bind_return_key=False,
visible=True,
)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
(15) 下拉菜单的更新方法
import PySimpleGUI as sg
list1 = ['Python', 'Java', 'C', 'c++', 'Gui']
list2 = ['小明', '小王', '小花', '小壮', '小美']
layout = [
[sg.Drop(list1,
default_value='Python',
key='-list1-',
size=(30, 6),
enable_events=True
)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
if event == '-list1-':
list3 = [1, 2, 3, 4, 5]
window['-list1-'].update(
value=None,
values=list3,
set_to_index=None,
disabled=None,
readonly=None,
font=None,
visible=None
)
window.close()
(16) 选择菜单和选择按钮
""" 选择菜单 """
""" 选择菜单可设定的属性 """
""" 选择菜单可更新的属性 """
""" 旋转按钮 """
""" 旋转按钮可设定的属性 """
""" 旋转按钮可更新的属性 """
import PySimpleGUI as sg
a = ['python', 'java', 'c++', 'php', 'html']
layout = [
[sg.T('选择菜单'), sg.OptionMenu(a, key='-OM-'),
sg.T('Sgin'), sg.Spin(list(range(10)), key='-SP-', enable_events=True)],
[sg.T("语言"), sg.In(key='-YY-', size=(25))]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
if event == '-SP-':
window['-YY-'].update(values['-SP-'])
window.close()
(17) 单选框的多种布局方式
""" 单选框的书写方法 """
""" For循环快速定义单选框 """
import PySimpleGUI as sg
list1 = ['非常满意', '满意', '一般', '不满意']
list2 = ['请对我做出评价:', '请对您做出评价:']
''' 从左到右 '''
''' 从上到下 '''
layout = [[sg.R(i, group_id=j) for i in list1] for j in range(9)]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
(18) 单选框属性的设定及更新方法
" 单选框属性的设定及更新方法 "
import PySimpleGUI as sg
list1 = ['非常满意', '满意', '一般', '不满意']
layout = [
[sg.T('1.XXX')],
[sg.R(i, group_id=1, key=i) for i in list1],
[sg.B('确认提交')]
]
"""
单选框可设定的一些属性:
text, # str 文本用于显示在单选框旁边
group_id, # any # 组ID
key=None, # 元素的唯一标识符
default=False, # bool如果为True,则默认选中
disabled=False, # 元素是否禁用
size=(30, 6), # 字符宽度,行高
auto_size_text=None, # 如果为True, 元素自动根据内容大小调整
background_color=None, # 背景颜色设定
text_color=None, # 字体颜色设定
font=None, # 元素字体名称或者大小设定
pad=None, # 元素间隔设定
tooltip=None, # str : 悬浮文本设定
enable_events=True, # 元素的事件属性,如果设定为True, 元素列表项目被选中时会发生事件
visible=True, # 元素可见设定状态
"""
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
if event == '确认提交':
for k, v in values.items():
if v:
print(k)
break
"""
单选框可更新的一些属性:
value=None, # 为True时,此单选框被选中,同组的其他选框更新为未选中
# bool 如果为True, 则选中,如果为False,则清空选中状态
text=None, # srt 更新显示在按钮旁边的文本
background_color=None, # 更新背景颜色
text_color=None, # 更新文本颜色
disabled=None, # 更新元素的禁用状态
visible=None # 定义元素为不可见
"""
window.close()
(19) 复选框的设定及更新方法
"""多选框可设定的一些属性:"""
"""多选框可更新的一些属性:"""
(20) 滑块元素的书写及设定方法
import PySimpleGUI as sg
layout = [
[sg.Slider(
range=(100, 500),
key=None,
default_value=None,
resolution=None,
tick_interval=50,
orientation=None,
disable_number_display=False,
border_width=None,
relief=None,
enable_events=False,
disabled=False,
size=(None, None),
font=None,
background_color='grey',
text_color='pink',
pad=None,
tooltip=None,
visible=True,
)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
(21) 滑块元素的更新方法
(22) 图片元素的多种书写方式
""" 图片元素的书写方法 """
import PySimpleGUI as sg
img = r'C:\Users\叶寻\Desktop\Python\picture'
layout = [
[sg.Image(filename=img + fr'\p{n}.png') for n in range(1, 4)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
(23) 图片元素的设定及更新方法
import PySimpleGUI as sg
pic1 = 'ADAFBMVEVHcExSQjQtP01pdXcxSlw...'
pic2 = 'QjQtaP01pdXcxSQjQtPgc01pdXcxS...'
pic3 = 'HJvZmlsZQAASA2lsZQAASA2dlnkWh...'
pic_gif = sg.DEFAULT_BASE64_LOADING_GIF
layout = [
[sg.Image(data=pic_gif, key='-GIF-')]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read(timeout=10)
window['-GIF-'].update_animation(source=pic_gif, time_between_frames=200)
if not event:
break
if event == '-PK-':
window['-Pk-'].update(
filename=None,
data=None,
size=(None, None),
visible=None,
)
window.close()
""" 补充: 图片元素的动图更新方法 """
(24) 列元素的书写及设定方法
import PySimpleGUI as sg
layoutL = [
[sg.Text("标题")],
[sg.InputText('请输入文章标题')],
[sg.Text("作者")],
[sg.InputText('请输入姓名或笔名')]
]
layoutR = [
[sg.Multiline("请输入正文内容", size=(30, 20))],
[sg.Button('确认提交')],
]
layout = [
[sg.Col(layoutL),
sg.Col(layoutR,
background_color='yellow',
size=(None, None),
pad=None,
scrollable=False,
vertical_scroll_only=False,
right_click_menu=None,
key=None,
visible=True,
justification="left",
element_justification="left",
vertical_alignment=None,
grab=None,
expand_x=None,
expand_y=None,
)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
(25) 框架元素的书写及设定方法
import PySimpleGUI as sg
aaa = [
[sg.Text("账号"), sg.InputText()],
[sg.Text("密码"), sg.InputText()]
]
layout = [
[sg.Frame(
title='登录框哦哦哦~~',
layout=aaa,
key=None,
tooltip=None,
right_click_menu=None,
visible=True,
title_color='red',
background_color='black',
title_location=None,
relief='flat',
size=(None, None),
font=None,
pad=None,
border_width=10,
element_justification='left',
vertical_alignment=None,
)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
(26) 通过框架元素的更新实现界面切换
import PySimpleGUI as sg
elist = ['资料1', '资料2', '资料3', '资料4', ]
layout_e = [
[sg.Listbox(elist, size=(20, 5))]
]
aaa = [
[sg.Text("账号"), sg.InputText()],
[sg.Text("密码"), sg.InputText()],
[sg.Button("确认"), sg.Button("退出")]
]
layout = [
[sg.Frame(title='登录框~~', layout=aaa, key='-DL-'),
sg.Frame(title='列表质料', layout=layout_e, key='-LB-', visible=False)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
if event == '确认':
window['-LB-'].update(visible=True)
window['-DL-'].update(visible=False)
if event == '退出':
sg.popup('确定退出?')
break
window.close()
(27) 标签元素的讲解及练习
import PySimpleGUI as sg
lista = ['苹果', '香蕉', '雪梨', '西瓜']
listb = ['白菜', '芥菜', '包菜', '生菜']
layout_a = [[sg.Listbox(lista, size=(50, 5))]]
layout_b = [[sg.Listbox(listb, size=(50, 5))]]
layout = [
[sg.TabGroup(
[
[sg.Tab("水果类", layout_a,
background_color=None,
font=None,
pad=None,
disabled=False,
border_width=None,
key='-F-',
tooltip=None,
right_click_menu=None,
visible=True,
element_justification='left',
), sg.Tab("蔬菜类", layout_b)]],
)
]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
if event == '水果类':
window['-F-'].update(
title=None,
disabled=None,
visible=None,
)
window.close()
(28) 编写一个文件选择器
import PySimpleGUI as sg
layout = [
[sg.FileBrowse(target='-B-', file_types=(("ALL Files", '*.*'),))],
[sg.InputText(key='-A-'), sg.InputText(key='-B-')]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
"""
button_text = "选择", # 按钮元素上要显示的文本
target = None, # 将要显示路径,显示到指定的key的输入框中---InputText
file_types = (("ALL Files", '*.*'),),
# 只显示指定的文件类型 '*.png'
# 只显示指定的文件名称 'text.*'
# 例:
# '*.*' --> 显示全部类型文件
# '*.png' --> 只显示png类型的文件
# 'pic.*' --> 只显示名字为pic的文件
initial_folder = None, # 默认路径设定
# _______________________________________________
# 通用
tooltip = None, # str: 悬浮文本,当光标置于该元素上方,会显示设定的文本
size = (None, None), # 元素宽度,行高(int,int)
auto_size_text = None, # 当设定值为True时,窗口自动适应文本大小
button_color = None, # 按键的颜色
enable_events = None, # bool: 事件触发属性
font = None, # 设定字体名称,大小,font='宋体',font=('宋体', int) or font=['宋体',int]
disabled = False, # 元素禁用设定
pad = None, # 元素间隔设定 记住参数类型为int (左右,上下) or ( (左,右), (上,下) ) or 根据左边规则进行自由搭配
key = '-Text-', # 元素唯一标识符,书写规范key='-NMAE-'。用于元素的定位
visible = True # bool: 元素可见状态
"""
(29) 文件夹选择器与文件另存为
"""
button_text = "选择", # 按钮元素上要显示的文本
target = key, # 将要显示路径,显示到指定的key的输入框中---InputText
file_types = (("ALL Files", '*.*'),),
# 只显示指定的文件类型 '*.png'
# 只显示指定的文件名称 'text.*'
initial_folder = None, # 默认路径设定
"""
import PySimpleGUI as sg
layout = [
[sg.FileBrowse(button_text="选择文件", size=(8, 1)), sg.InputText(size=(20, 1))],
[sg.FolderBrowse(button_text="选择文件夹", size=(8, 1)), sg.InputText(size=(20, 1))],
[sg.FileSaveAs(button_text="另存为", size=(8, 1)), sg.InputText(size=(20, 1))]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
(30) 颜色选择器和日历选择器
import PySimpleGUI as sg
chinese_month_list = []
for i in range(1, 13):
chinese_month_list.append(f'{i}月')
chinese_week_list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
layout = [
[sg.ColorChooserButton(button_text='颜色选择器'), sg.InputText()],
[sg.CalendarButton(button_text='日历选择器', day_abbreviations=chinese_week_list), sg.InputText()]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
close_when_date_chosen = True,
default_date_m_d_y = (None, None, None),
locale = None,
format = "%Y-%m-%d %H:%M:%S",
begin_at_sunday_plus = 0,
month_names = None,
day_abbreviations = None,
title = "日历",
no_titlebar = False,
location = (None, None),
(31) 关于弹窗的各种设定
import PySimpleGUI as sg
return_sth = sg.popup('能力越大', '责任越大', '哈' * 20,
no_titlebar=False,
grab_anywhere=True,
keep_on_top=False,
title='弹窗显示',
button_color=('red', 'black'),
background_color='black',
text_color='red',
auto_close=False,
auto_close_duration=None,
custom_text=('yes', 'no'),
non_blocking=False,
font=None,
location=(None, None),
any_key_closes=False,
image=None,
modal=True,
)
print(return_sth)
(32) 弹窗之PopupGetText
import PySimpleGUI as sg
print(sg.PopupGetText('密码输入框', password_char='*'))
(33) 各种不同特征的弹窗
import PySimpleGUI as sg
sg.PopupGetFile('请选择一个文件') or sg.popup_get_file('请...')
sg.PopupGetFolder('请...') or sg.popup_get_folder('请...')
sg.PopupAnnoying()
sg.PopupAutoClose()
sg.PopupCancel()
sg.PopupOKCancel()
sg.PopupError()
sg.PopupNoButtons()
sg.PopupNoWait()
(34) 菜单栏的设定方法
import PySimpleGUI as sg
menu = [
['文件(&F)', ['新建', '打开', ['打开1', '打开2'], '保存', '退出']],
['编辑', ['撤销', '重做', '剪切', '保存', '!感叹号禁用功能']],
['帮助', ['---', '检测更新', '---', '使用指南::YeXun', '---', '!关于']]
]
layout = [
[sg.Menu(menu, key='-A-', tearoff=False)],
[[sg.InputText(size=(30, 1))] for _ in range(5)]
]
window = sg.Window('菜单演示', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
if event == '使用指南::YeXun':
sg.popup('暂无指南')
window.close()
(35) window窗口常用属性
import PySimpleGUI as sg
layout = [
[[sg.InputText()] for _ in range(6)],
[sg.Button('确定'), sg.Button('取消')]
]
window = sg.Window('pySimpleGUI', layout,
location=(None, None),
size=(500, 500),
element_padding=(30, 20),
button_color=('black', 'red'),
font=('黑体', '15'),
background_color='pink',
auto_close=False,
auto_close_duration=3,
no_titlebar=False,
grab_anywhere=False,
keep_on_top=False,
resizable=False,
disable_close=False,
disable_minimize=True,
right_click_menu=None,
transparent_color=None,
element_justification='center'
)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()
(36) 多行文本框元素
import PySimpleGUI as sg
text1 = """永远爱你
鹅鹅鹅呃呃呃,哈哈哈哈哈。
飞蛾发发阿发,阿发发发发。
啊发发发发啊,啊发发发发。
发发发发发发,法网发任发。
"""
layout = [
[sg.ML(default_text=text1,
disabled=False,
border_width=None,
size=(50, 6),
background_color=None,
text_color=None,
enable_events=False,
key='-A-',
write_only=False,
reroute_stdout=False,
reroute_cprint=True,
reroute_stderr=False,
autoscroll=False,
focus=False,
pad=None,
tooltip=None,
justification=None,
right_click_menu=None,
visible=True,
do_not_clear=True,
)],
[sg.OK(), sg.Cancel()]
]
window = sg.Window('多行文本演示', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
if event == '-A-':
window['-TEXT-'].update(
value='你好!',
disabled=None,
append=True,
font=None,
text_color=None,
background_color=None,
text_color_for_value=None,
background_color_for_value=None,
visible=None,
autoscroll=None,
justification=None,
)
if event == 'OK':
print('ok')
if event == 'Cancel':
sg.cprint('cancel', '您按了取消!', '随便添加内容')
window.close()
(37) 多行文本框知识点补充
import PySimpleGUI as sg
text1 = """永远爱你
鹅鹅鹅呃呃呃,哈哈哈哈哈。
飞蛾发发阿发,阿发发发发。
啊发发发发啊,啊发发发发。
发发发发发发,法网发任发。
"""
layout = [
[sg.ML(default_text=text1, size=(50, 6), key='-TEXT-')],
[sg.OK(),
sg.VerticalSeparator(color='red', key=None, pad=((10, 10), (10, 10))),
sg.Cancel()]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
if event == 'OK':
window['-TEXT-'].print(
)
if event == 'Cancel':
sg.cprint('Cancel', '你按了取消')
window.close()
(38) 表格元素的设定方法
import PySimpleGUI as sg
a = ['编号', '商品', '价格', '', '', '']
b = [['001', '牛奶', '5'], ['002', '牛奶', '6'], ['003', '香烟', '10'], ]
layout = [
[sg.Table(b,
headings=a,
max_col_width=500,
auto_size_columns=None,
def_col_width=10,
display_row_numbers=False,
justification='l',
num_rows=10,
row_height=20,
key='-userDate.txt-',
font=('黑体', 10),
text_color=None,
background_color='red',
enable_events=True,
bind_return_key=True,
)]
]
window = sg.Window('pySimpleGUI', layout)
while True:
event, values = window.read()
print(event, values)
if not event:
break
window.close()