pythonGUI(二)基本元素之二

1、选择菜单和旋转按钮

选择菜单 OptionMenu

sg.OptionMenu()
注意!
OptionMenu只有tkinter端口才有此元素,其他三个端口没有。
此元素和设置了只读属性的ComboBox很像。
OptionMenu没有font属性,也没有 enable_events 事件属性

OptionMenu(values,

    default_value=None,

    key=None,

    size=(None, None),

    disabled=False,

    auto_size_text=None,

    background_color=None,

    text_color=None,

    pad=None,

    tooltip=None,

    visible=True,
        )

Update方法,用于元素的更新。

window[key].update()

window[key].Update()

元素可以更新的属性只有如下几种:

Update(
    value=None,
    # 更新默认选中的元素

    values=None,
    # 更新所有显示的文本选项

    disabled=None,
    # 更新元素的禁用状态

    visible=None
    # 更新元素的可见状态
    )

Python range()函数

用于创建一个有序整数列表。

返回值是一个可迭代的对象。

一般用在 for 循环中,或者直接转化为列表

range(10) 0~9整数 步长默认为1
range(1,10) 1~9整数 步长默认为1
range(1,10,2) 1,3,5,7,9 步长为2

转换为列表

print(list(range(10)))
print(list(range(1,10)))
print(list(range(1,10,2)))

结果

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 3, 5, 7, 9]

用于for循环的案例

for i in range(10):
    print(i)

结果

0
1
2
3
4
5
6
7
8
9
[Finished in 0.2s]
import PySimpleGUI as sg

sg.theme('DarkTeal8')

layout = [
    [sg.T("OptionMenu"), sg.OptionMenu(values=list(range(10)), size=(5, 20), key='-optionMenu-'),
     sg.T("Combo"), sg.Combo(values=list(range(10)), size=(15, 20), key='-Combo-')],
    [sg.Ok()]
]
window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read()
    key = '-COMBO1-'
    print(event)
    if event == None:
        break
    if event == 'Ok':
        window['-optionMenu-'].update(value='u')
        window['-Combo-'].update(value='u')
        window['-optionMenu-'].update(values=['u',2,3])   # 必须是列表
        window['-Combo-'].update(values=['u',2,3])        # 可以不是列表容器
        window['-Combo-'].update(values='u')        # 可以不是列表容器


window.close()

1.2旋转按钮 Spin

特征: 含有向上向下两个箭头按钮

Spin(values,
    initial_value=None,
    key=None,
    disabled=False,
    enable_events=False,
    size=(None, None),
    auto_size_text=None,
    font=None,
    background_color=None,
    text_color=None,
    pad=None,
    tooltip=None,
    visible=True,
        )

Update方法,用于元素的更新。

window[key].update()

window[key].Update()

元素可以更新的属性只有如下几种:

Update(value=None,
    values=None,
    # 可以是个整数。
    disabled=None,
    visible=None)

2、单选框

一组里面只能选择一项

sg.Radio()orsg.R()

Radio(text,
        # str 文本用于显示在单选框旁边

    group_id,
        # any
        # 组ID

    key=None,
        # 元素的唯一标识符

    default=False,
        # bool 如果为True,则默认选中

    disabled=False,
        # 设定禁用状态

    size=(None, None),
        # 设定元素宽度,行高

    auto_size_text=None,
        # bool 默认为True
        # 元素根据文本自动调整大小

    background_color=None,
        # 元素背景颜色

    text_color=None,
        # 元素文本颜色

    font=None,
        # 字体名称和大小设定
        # (str,int)

    pad=None,
        # 左右上下  (int,int)or((int,int),(int,int))
        # 元素间隔设定

    tooltip=None,
        # 悬浮文本设定

    enable_events=False,
        # 元素事件属性
        # 当设定为True时,选框被选中时会发生事件

    visible=True,
        # 设定元素的可见状态

        )
import PySimpleGUI as sg

list_comment = ["非常满意","满意","一般","不满意"]
list_id = ["1.请对小A的服务进行评价","2.请对小B的服务进行评价"]
layout = [
    [sg.T(list_id[0])]]+\
    [[sg.R(i,group_id=1) for i in list_comment]]+\
    [[sg.T(list_id[0])]]+\
    [[sg.R(i,group_id=2) for i in list_comment]

   ]
window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read()
    key = '-COMBO1-'
    print(event)
    if event == None:
        break
window.close()

巧用For循环快速定义单选框(1)

  • 定义三行元素的常用方式1

layout=[[],[],[]]

  • 定义三行元素的常用方式2

layout=[[]]+[[]]+[[]]

  • 利用for循环从左向右遍历时 方式1和方式2 都可以

layout=[[],[],[()for循环]]
layout=[[]]+[[]]+[[()for循环]]

  • 利用for循环从上向下遍历时 要用方式2

layout=[[]]+[[]]+[[]for循环]

巧用key=(x,y),For循环快速定义单选框(2)

  • 从左向右从上向下同时遍历
layout=[[sg.R(x,group_id=y,key=(x,y)) for x in Comment]for y in range(9) ]
import PySimpleGUI as sg

list_comment = ["非常满意","满意","一般","不满意"]
list_id = ["1.请对小A的服务进行评价","2.请对小B的服务进行评价"]
layout = [[sg.T(str(y+1)+".")]+[sg.R(text=x,group_id=y,key=str(x)) for x in list_comment] for y in range(0,9)
   ]
window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read()
    key = '-COMBO1-'
    print(event)
    if event == None:
        break

ResetGroup方法,相同组ID的单选框都更新为未选中状态。

window[key].ResetGroup()

window[key].reset_group()

Update方法,用于元素的更新。

window[key].update()

window[key].Update()

元素可以更新的属性只有如下几种:


Update(
    value=None,
    # bool 如果为True,此单选框被选中,同组的其他选框更新为未选中。

    text=None,
    # str 更新显示在按钮旁边的文本

    background_color=None,
    # 更新背景颜色

    text_color=None,
    # 更新文本颜色

    disabled=None,
    # bool 更新元素的禁用状态
    
    visible=None
    # bool 更新元素的可见状态

    )
import PySimpleGUI as sg

list_comment = ["非常满意","满意","一般","不满意"]
list_id = ["1.请对小A的服务进行评价","2.请对小B的服务进行评价"]
layout = [[sg.T(str(y+1)+".")]+[sg.R(text=x,group_id=y,key=(x,y+1)) for x in list_comment] for y in range(0,9)]+[[sg.Ok()]
   ]
window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read()
    print(values)

    if event == None:
        break
    if event=="Ok":
        # window[('不满意', 3)].reset_group()
        window[('不满意', 3)].update(value=True)



window.close()

3、复选框 Checkbox

sg.Checkbox()or sg.CB()


Checkbox(
    text,
        # 文本显示在选框旁边
    default=False,
        # bool 如果为True,则选中
    size=(None, None),
        # 尺寸设定,元素的宽度和行高
    auto_size_text=None,
        # bool 默认为True
    font=None,
        # (str,int)字体的名称和大小设定
    background_color=None,
        # 背景颜色设定
    text_color=None,
        # 字体颜色设定
    enable_events=False,
        # bool 元素的事件属性
    disabled=False,
        # bool 元素的禁用状态
    key=None,
        # 元素的唯一标识符
        # 规范key='-CHECKBOX-'
    pad=None,
        # 和周围元素的间隔((int,int),(int,int)) 左右上下
    tooltip=None,
        # str 悬浮文本设定
    visible=True,
        # bool 元素的可见状态设定
     )

import PySimpleGUI as sg

list_comment = ["老虎","狮子","猴子","猫","狗","鳄鱼"]
layout = [[sg.T("选择你喜欢的动物吧!!!")]]+\
         [[sg.CB(i)] for i in list_comment]+\
         [[sg.Ok()]]
window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read()
    print(values)

    if event == None:
        break
 



window.close()

在这里插入图片描述

Update方法,用于元素的更新。

window[key].update()

window[key].Update()

元素可以更新的属性只有如下几种:


Update(
    value=None,
    # 更新选中状态
    # bool 如果为True,则选中,如果为False,则清空选中状态

    text=None,
    # str  更新选框旁边的文本

    background_color=None,
    # 更新元素的背景颜色

    text_color=None,
    # 更新元素的文本颜色

    disabled=None,
    # 更新元素的禁用状态

    visible=None
    # 更新元素的可见状态
    )

import PySimpleGUI as sg

list_comment = ["老虎","狮子","猴子","猫","狗","鳄鱼"]
layout = [[sg.T("选择你喜欢的动物吧!!!")]]+\
         [[sg.CB(i)] for i in list_comment]+\
         [[sg.Ok()]]
window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read()
    print(values)

    if event == None:
        break

    if event == "Ok":
        # 复选框在不进行key值设定时,默认用数字作为key 从0开始
        for i in range(6):
            window[i].update(
                value= True,
                text = None,
                background_color='yellow',
                text_color='red',
                disabled=True,
                visible=None

            )



window.close()

在这里插入图片描述

4、滑块 Slider

滑块,有水平方向的也垂直方向的。

sg.Slider()

Slider(
    range=(None, None),
    # 滑块范围(最小值,最大值) 默认1-10
    key=None,
    # 元素的唯一标识符 规范书写key='-SLIDER-'
    default_value=None,
    # 滑块初始所处位置
    resolution=None,
    # 滑块值变动的最小单位值
    tick_interval=None,
    # 刻度值标记
    orientation=None,
    # 方向设定 水平方向或者垂直方向
    # 有效值'horizontal' or 'vertical' 
    # 支持简写:'h' or 'v'
    disable_number_display=False,
    # bool 默认为False,如果为True,滑块旁的数字不显示。
    border_width=None,
    # 边界线宽度
    relief=None,
    # 浮雕设计,与border配合使用才有效
    # 'raised','sunken','flat','ridge','solid','groove'
    enable_events=False,
    # 元素的事件属性
    disabled=False,
    # 元素禁用状态设定
    size=(None, None),
    # 元素的尺寸设定 宽度和行高
    font=None,
    # 字体名称和大小设定
    background_color=None,
    # 滑块背景颜色设定
    text_color=None,
    # 元素文本颜色设定
    pad=None,
    # 元素间隔设定((int,int),(int,int))
    tooltip=None,
    # 元素悬浮文本设定
    visible=True,
    # 元素可见状态设定
    )

sg.theme_slider_color('') 用于设定滑块轨迹的颜色

import PySimpleGUI as sg

sg.theme_slider_color("yellow")
#要在字符串中插入变量的值,可在前引号前加上字母f,再将要插入的变量放在花括号内
layout = [[sg.Slider(key=f'-SLIDER{i}-',
                     range=(1,500),
                     default_value=100*(i+2),
                     resolution=100,
                     tick_interval=100,
                     orientation='v',
                     disable_number_display=True,
                     border_width=5,
                     relief='sunken',
                     enable_events=True,
                     disabled=False,
                     size=(10,55),
                     font=("黑体",5),
                     background_color="blue",
                     text_color='red',
                     )for i in range(3)]
]
window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read()
    print(values)

    if event == None:
        break


window.close()

Update方法,用于元素的更新。

window[key].update()

window[key].Update()

元素可以更新的属性只有如下几种:

Update(
    value=None,
    # int or float
    range=(None, None),
    # (int,int) or (float,float)
    disabled=None,
    # bool 
    visible=None
    # bool
    )

5、图片显示 Image

sg.Image()

Image(
    filename=None,
    # 图片路径仅支持GIF和PNG

    data=None,
    #base64编码的字符串

    background_color=None,
    #背景颜色设定

    size=(None, None),
    # 图片 宽度和高度设定(pix)

    pad=None,
    #和周围元素间的间隔 ((int,int),(int,int))
    # 左右上下顺序

    key=None,
    # 元素的唯一标识符

    tooltip=None,
    # 元素的悬浮文本

    right_click_menu=None,
    # 右击调出菜单  ['开始',['开始','中止','结束']]

    visible=True,
    # 元素可见状态 bool

    enable_events=False,
    # 元素事件属性,默认为False
        )

f-string 格式化字符串常量(formatted string literals)

Python3.6新引入的一种字符串格式化方法。
目的是使格式化字符串的操作更加简便。
大括号 {} 标明被替换的字段。

举例:


# str 和 int 之间不可以直接相加 

age=18
age_diff=5


print('我今年'+str(age)+'岁,他比我大'+str(age_diff)+'岁。')

print(f'我今年{age}岁,他比我大{age_diff}岁。')

>>
我今年18岁,他比我大5岁。
我今年18岁,他比我大5岁。


----------------------------------------
age=(1,4)

print(f'他比我大{age[0]}岁还是{age[1]}岁?')

print(f'他比我大{age}岁?')

>>
他比我大1岁还是4岁
他比我大(1, 4)岁

import PySimpleGUI as sg

image_path=r"C:\Users\Admin\Desktop\Images\图片"
layout=[[sg.Image(filename=image_path+f'{i}.png')for i in range(1,5)]]

window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read()
    print(values)

    if event == None:
        break


window.close()

UpdateAnimation动图更新方法

window[key].update_animation()
window[key].UpdateAnimation()

动图可以更新的属性只有如下几种:

window[key].UpdateAnimation(

        source,
        # 包含动画GIF的文件名或Base64编码的字符串

        time_between_frames=0
        # 显示帧之间要等待的毫秒数

    )
import PySimpleGUI as sg

base64_default = sg.DEFAULT_BASE64_LOADING_GIF
layout=[[sg.Image(data=base64_default,key='-gif-')]]
key='-gif-'
window = sg.Window('Python GUI', layout, keep_on_top=True)

while True:
    event, values = window.read(timeout=10)  # 每隔10毫秒重新读一次界面
    print(values)
    window[key].update_animation(source=base64_default,time_between_frames=100)  # 帧于帧之间等到的毫秒数
    if event == None:
        break


window.close()

Update方法,用于元素的更新。

window[key].update()

window[key].Update()

元素可以更新的属性只有如下几种:

Update(
    filename=None,
    # 更新图片路径

    data=None,
    # 更新元素base64编码字符串

    size=(None, None),
    # 更新元素的大小

    visible=None
    # 更新元素的可见状态
    )
import PySimpleGUI as sg
ͼƬ1 = b'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'
ͼƬ2 = b'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'
ͼƬ3 = b'iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAALtSURBVGhD7Ztdc9JAFIZPKEUoIMiHtUxHbXvV8ePSO/9Rf07/kXde63QcdRgpU5QWKAkQIAH0bFcmxhp2ye5mMTwzZ9gNk8w85J2wOQTj7fnZAmLGu7NzI0HHsWN5xg/enJIN/zOt9xfkNdZnfCuuE+54Skfy0E580OrQkVy0Ekdp67JNZ3LRRlylNKKFuGppJHLxP6QX6haRkYp7pR3TVukdnbhf2jFHZKyKSMRlSQ+/d2F0fUtnwSgXlyG9mM/h9usVmI0f0K+36NZglIoPJUhPrRHcfKiD3emT+cOn++R1FcrEUdoULI3R7lx8I0vcZOYBlE+fQfZJib4bjBJx0dLeaCOZSgEqL55DKr9H5ixIFxctfV+0i8c1MBJ8KlLFRUuHibYfaeIipUVE209g6wm/Glx7QmfszBwXZhOHjHmkM7XSr8gaUH19Asl0im4F6H1uwrhnkTFGe92zzNV6mg5s7lpHOggUDRttP0xRd0cTmHQs7hIhjWCkq6+OQ0XbD5P4wpnBzJ5yl85IvarrzFY8bmzFdWdw1WEqZzSmewSzEeK4Lreabba6vKZ7BbMR4plyAfaqReZiYWOiXjg6YKp0KU/3CGZ7cYsbW/G4wSRu7BiQ2N3hLp1hEk/mMpDeL3JXMpumRwgHNkOwGfH7Pl8EK8UTu8m1Ckk9ygqRNxtt0oG5+ViHcfeuExMWaU89YX8Mm4PItDcEd7h6Kfmv1hM2F7ENhh1WJFcrQ/7wMRnzoOSpJ29vLOyZxw/B23bCNXn3UyNU9KVe1UXKI6SHfnLXQ5/0h6GiL1UcES2P6/bKyyPSf5u7M+h9aS5/j+NBujgiWv6v6Lf4o69EHBEtj4SJvjJxRIb8fdFnQak4IkPeG/38YZVuDUa5OCJDHsHj5moVOgsmEnFEljwrkYkjfnkwyFAJkYojXnnDUGceuTjilVeFFuKIanltxBGV8lqJIyivAu3EEe+9uCy0FFdBbMWXrac4Ees/3MUUgJ8kgTzozg6iyQAAAABJRU5ErkJggg=='
ͼƬ4 = b'iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAAL5SURBVGhD7ZvdThNBFMfPbltrK6VAoUURRYwx3miM3nrnO/gUPo1P4Tt45wNgjJGoCfWjiiyUtvS7u23dM53I0sh2pjszO3X3R052Zkmb/Jh/htlDMZ6/fD2GiPHm1QvDpOPI8XfFbz54Rm78z1T235JrpFc8FtcJZ9ClI3loJ96sVuhILlqJo3TDKtOZXLQRVymNaCGuWhoJXfyC9FjdITJUca+03anD2P1SRWji09IDt1QSirgs6dbpT2jXf9OZP8rFZUiPR0M4/fUJ6kcHUDv8Qu/6o1RchnS/04Cj8h50GhaZr5R2yXUWysRlSGO0j7+9J0fcVDoLG7cfwdLaFv2uP0rERUt7o41k80Uo7jyGdHaZzFmQLi5aehLtdxeivXbjPhgmn4pUcdHS59Hu0Gg/ZI72NNLERUpfHu08mc+Db+updvgZ7D7/s/HQGcDQ7pExj3S2cAsMw4TNu08heSVD7wJUKx+h26ySMUZ73lXmaj0NumfcNY+0HygaNNrTMEXd6begd2ZxlwhpBCNd2n0SKNrTMImPHBuG7obCWzojdVfXmVg8asTiutOs/mAqu9emr/BnIcTxXN6wvrLV8eS0OIuFEMcj6rWVTeZiYWGivnr9HlNlcuv0Ff7Em1vUiMWjBpO4YSbATKS4S2eYxFOZZcisbnFX8mqOvkMw7H6HNCMc+pwvgpniZtJdvTkKSS8VhMg3rAPSgbHKe+71hN4NhrRPPWF/DJuDSL9VBafXJGM/Lms9Yd8c/0KCHVYkV9iGfHGHjHlQ8qknb28s6MrjD8HbdsIz+cn3D4GiL3VXFymPnPfQE9Br1wJFX6o4Iloez+2lO5PW8mjouJvePnk44UW6OCJaXkT0lYgjouWRINFXJo7IkP9X9FlQKo7IkPdGP7/B9mtOuTgiQx7B982tb9OZP6GII7LkWQlNHJmWdw+SZKyCUMURr7xhREgc8cqrQgtxRLW8NuKISnmtxBGUV4F24oj3WVwWWoqrILLi8b9YxkQCgD/BqDzP2hgYEAAAAABJRU5ErkJggg=='
ͼƬ5 = b'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'
data_list=[ͼƬ1,ͼƬ2,ͼƬ3,ͼƬ4,ͼƬ5,]
layout=[[sg.Image(data=ͼƬ5,
    background_color="red",
    # size=(10,20),
    # pad="",
    key='-Image-',
    tooltip="这是一张图片",
    enable_events=True,
    right_click_menu=[1,['-图片切换-', '退出界面']]



)]]
key='-gif-'
window = sg.Window('Python GUI', layout, keep_on_top=True)
i=0
while True:
    event, values = window.read()  # 每隔10毫秒重新读一次界面
    print(values)
    if event == None:
        break
    if event == '-Image-':
        window['-Image-'].update(data=data_list[i])
        i=i+1 if i<4 else 0
    if event == '-图片切换-':
        window['-Image-'].update(data=data_list[i])
        i=i+1 if i<4 else 0
        print(event)
    if event == "退出界面":
        print("Exit")
        break



window.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值