PySimpleGUI库python复习笔记

PySimpleGUI 库

​ PySimpleGUI 是一个用于简化 GUI 编程的 Python 包,它封装了多种底层 GUI 框架(如 tkinter、Qt、WxPython 等),提供了简单易用的 API。PySimpleGUI 包含了大量的控件(也称为小部件或组件),这些控件可以帮助你快速构建用户界面

安装

pip install pysimplegui == 4.70.1

布局和窗口

import PySimpleGUI as sg

# 定义布局
layout = [
    [sg.Text('你好')],
    [sg.Button('关闭')]
]
# 创建窗口
window = sg.Window('我的窗口', layout)
# 事件循环
while True:
    event, values = window.read()
    # 点击X和退出按钮,关闭窗口
    if event in (None, "关闭"):
        break
# 关闭窗口
window.close()

文本输入输出案例

import PySimpleGUI as sg

# 定义布局
layout = [
    [sg.Text("编号:", size=(10, 1)), sg.InputText()],
    [sg.Text(key="text")],
    [sg.Button('保存'),sg.Button('关闭')]
]
# 创建窗口
window = sg.Window('我的窗口', layout)
# 事件循环
while True:
    event, values = window.read()
    # 获取编号
    id = values[0]
    if event == '保存':
        print(f'id={id}')
        sg.popup(f'id={id}')
        # 更新文本
        window['text'].update('新的文本内容')
    if event == sg.WIN_CLOSED or event == '关闭':
        break
# 关闭窗口
window.close()

视频处理

import PySimpleGUI as sg
import cv2

def rendVideo():
    # 读取视频
    cap = cv2.VideoCapture(0)
    #界面布局
    layout =[
        [
            sg.Button("退出", size=(10, 1))
        ],
        [sg.Image(key='image')],
    ]
    #创建一个window对象
    #location 视频位置
    #size 视频大小
    window =sg.Window("视频播放",layout,location=(350,50),size=(800,500))
    # 开始人脸录入
    while  cap.isOpened():
        event, values = window.read(timeout=10)
        ret,frame = cap.read()
        if ret:
            #把数据帧对象转换成bytes数据类型,更新窗口对象window信息
            imgbyts = cv2.imencode('.png', frame)[1].tobytes()
            window['image'].update(data=imgbyts)
        #点击X和退出按钮,关闭窗口
        if event in (None,"退出"):
            break
    #关闭窗口
    window.close()
    cap.release()
if __name__ =="__main__":
    rendVideo()

图片上传

import PySimpleGUI as sg

def main():
    # 设置主题
    sg.theme('LightBlue')
    # 布局定义
    layout = [
        [sg.Text('请选择一张图片:')],
        [sg.Input(key='-FILE-', enable_events=True), sg.FileBrowse(file_types=(("Image Files", "*.png;*.jpg;*.jpeg;*.gif"),))],
        [sg.Button('退出')],
        [sg.Image(key='-IMAGE-')]
    ]
    # 创建窗口
    window = sg.Window('图片上传示例', layout)
    while True:
        event, values = window.read()
        # 处理事件
        if event in (sg.WINDOW_CLOSED, '退出'):
            break
        elif event == '-FILE-':
            # 更新图片
            image_path = values['-FILE-']
            print(image_path)
            if image_path:
                window['-IMAGE-'].update(filename=image_path)

    window.close()
if __name__ == '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值