Python图形界面
七、文本元素参数设定
import PySimpleGUI as sg
text = '''悯农
唐 李绅
锄禾日当午,
汗滴禾下土。
谁知盘中餐,
粒粒皆辛苦?
'''
layout=[[sg.T(text, # str:要显示的文本。可以包含/n以实现多行。
key='-Text-', # [str, int, tuple, object]:
# 元素唯一标识符,
# 书写规范 key='-NMAE-'。用于元素的定位。
size=(None, None), # (int, int): 元素宽度,行高 size=(30, 20)
font=('宋体',20), # 设定字体的名称,大小 font=None
# font='宋体'
# font=('宋体',int) or font=['宋体',int]
auto_size_text=True, # bool: 元素根据文本自动调节大小 auto_size_text=None
enable_events=False, # bool: 事件属性,设定为True时,点击文本发生事件。
relief='ridge', # 浮雕设计 'raised','sunken','flat','ridge','solid','groove' relief=None
border_width=None, # 设定relief时,用来设定边界宽度 border_width=None
text_color="blue", # 文本颜色 text_color=None
background_color='white', # 文本背景颜色 background_color=None
justification=None, # 对齐方式: 'left','right','center'
pad=None, # 元素间隔设定 记住左右上下
# (int, int) or ((int, int),(int,int))
# or (int,(int,int))or ((int, int),int)
# (left/right, top/bottom) or ((left, right), (top, bottom))
right_click_menu=['1',['1','2','3']], # 右击调出菜单 List[List[Union[List[str],str]]],设定后,右击此元素可以调出菜单。
grab=True, # bool:如果为真,点此元素可以移动拖拽窗口 grab=None
tooltip='这是一个提示文本', # str:悬浮文本 ,当光标置于该元素上方,会显示设定的文本。 tooltip=None
visible=True # bool: 元素可见状态
)]
]
# layout=[
# [sg.T('你好'),sg.T('你好'),sg.T('你好')],
# [sg.T('你好'),sg.T('你好',pad=(30,30)),sg.T('你好')],
# [sg.T('你好'),sg.T('你好'),sg.T('你好')],
# ]
# 3.创建窗口
window = sg.Window('Python GUI', layout)
# 4.事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
if event == None: # 窗口关闭事件
break
if event == '-Text-':
sg.popup('运行了一个点击事件')
# 5.关闭窗口
window.close()
八、文本元素更新设定
1. 更新方法
window[key].update()
window[key].Update()
2. 文本元素可以更新的属性
update(
value=None, # str 更新文本
background_color=None,#更新文本背景颜色
text_color=None,# 更新文本颜色
font=None,# 更新字体的名称或者大小
visible=None# 更新元素的可见状态
)
3. 总结代码
import PySimpleGUI as sg
layout=[
[sg.T('小帽',key='-Text-'),sg.B('点赞')]
]
# 3.创建窗口
window = sg.Window('Python GUI', layout)
# 4.事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
if event == None: # 窗口关闭事件
break
if event == '点赞':
window['-Text-'].update(
value='谢谢支持!', # str 更新文本
background_color = 'white', # 更新文本背景颜色
text_color = 'black', # 更新文本颜色
font = ('黑体', 30), # 更新字体的名称或者大小
visible = None # 更新元素的可见状态
)
# 5.关闭窗口
window.close()
九、中英文切换页面(*)
# 1.导入库
import PySimpleGUI as sg
# 2.定义布局,确定行数
layout=[
[sg.B('中文'),sg.B('English')],
[sg.T('请输入基本信息', key='-TITLE-')],
[sg.T('姓名', key='-NAMETXT-',size=(8,1))]+[sg.In()]]+[
[sg.T('性别', key='-SEXTXT-',size=(8,1))]+[sg.In()]]+[
[sg.T('年龄', key='-AGETXT-',size=(8,1)),sg.In()],
[sg.B('确认', key='-CONF-'),sg.B('取消', key='-CANCEL-')]
]
# 3.创建窗口
window = sg.Window('Python GUI', layout)
# 4.事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
if event == None: # 窗口关闭事件
break
if event == 'English':
window['-TITLE-'].update("Please enter basic information")
window['-NAMETXT-'].update('Name')
window['-SEXTXT-'].update('Sex')
window['-AGETXT-'].update('Age')
window['-CONF-'].update('Confirm')
window['-CANCEL-'].update('Cancel')
if event == '中文':
window['-TITLE-'].update("请输入基本信息")
window['-NAMETXT-'].update('姓名')
window['-SEXTXT-'].update('性别')
window['-AGETXT-'].update('年龄')
window['-CONF-'].update('确定')
window['-CANCEL-'].update('取消')
# 5.关闭窗口
window.close()
十、单行输入框元素的设定
import PySimpleGUI as sg
layout = [
[sg.T('账号:'), sg.In(
'请输入您的账号', # 默认值设定,可以为空字符串
key='-INPUT-', # 元素的唯一标识符,规范 key='-INPUT-'
size=(30, None), # 宽,行高 size=(None, None)
disabled=None, # bool: 元素禁用,如果为True则禁用,无法输入任何值
password_char='', # 密码字符,一般设置为*
justification='l', # 对齐方式 'r','l','c'
background_color='black', # 输入框的颜色
text_color="red", # 输入框的文本颜色
font=('黑体', 15), # 输入框字体的名称或者大小设定
tooltip='这是一个提示文本', # str:悬浮文本
border_width=5, # 输入框边界线宽度设定
enable_events=False, # bool:输入框的事件属性
# 如果设定为True,输入值会发生一个事件
do_not_clear=True, # bool:输入框内容不被清楚
# 如果为False,一发生事件,该输入框内的值会被清除
pad=None, # 元素间隔
disabled_readonly_background_color='black', # str:元素禁用时的背景颜色设定
disabled_readonly_text_color=None, # str:元素禁用时的背景颜色设定
right_click_menu=None, # 右击调出菜单 List[List[Union[List[str],str]]],设定后,右击此元素可以调出菜单。
visible=True # 元素的可见状态,如果为False,则界面不显示该元素
)],
[sg.T('密码:'), sg.In('', focus=True)], # bool:设定焦点,如果为True,则光标显示在此输入框
[sg.B('确定'), sg.B('取消')]
]
# 3.创建窗口
window = sg.Window('Python GUI', layout)
# 4.事件循环
while True:
event, values = window.read() # 窗口的读取,有两个返回值(1.事件,2.值)
if event == None: # 窗口关闭事件
break
if event == '-Text-':
sg.popup('运行了一个点击事件')
# 5.关闭窗口
window.close()