一款简单的Python的Web的GUI框架——PySimpleGUIWeb

2,381 阅读3分钟

1 说明:

=====

1.1 PySimpleGUI

1.1.1 是PySimpleGUI的一个组成包,而PySimpleGUI使用起来非常简单。

1.1.2 本人曾介绍过:《python3的PySimpleGUI库的介绍、安装、学习》,此处省略。

www.toutiao.com/i6776256127…

1.2 PySimpleGUIWeb

1.2.1 A port of PySimpleGUI that runs in a web browser. Utilizes Remi as the GUI framework.

1.2.2 在Web浏览器中运行的PySimpleGUI端口, 采用Remi作GUI框架,非常简单。

1.2.3 是我目前发现学习python的web中适合初学者最简单的Web的GUI框架了。

2 准备:

=====

2.1 环境:

华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。

2.2 安装:

pip install PySimpleGUI

pip install --upgrade PySimpleGUI

pip install pysimpleguiweb #可能自带安装remi

pip install remi #可能需要安装

2.3 相关地址:

pypi.org/project/PyS…

github.com/PySimpleGUI…

github.com/PySimpleGUI…

3 第一个窗口:

==========

3.1 方法一:非常简单。

#方法一: import PySimpleGUIWeb as sg

#定义主函数

def main():

#布局非常简单
layout = [
    [sg.Text('Hello World')],  #文本显示
    [sg.Input()],              #空白输入框
    #[sg.Combo(['Combo 1']),sg.Combo(['Combo 2']),sg.Combo(['Combo 3']),], #1行显示水平3个
    [sg.Combo(['Combo 1'])],
    [sg.Text('你好 世界!')],   #支持中文
    [sg.InputText('男')], #默认初始内容的输入框
    #[sg.Ok(), sg.Cancel()],  #按钮默认大小
    #size的宽5(个字符串),1(个字符串)
    [sg.Ok(size=(5,1)), sg.Cancel(size=(5,1))],
]
#定义窗口,窗口名称
window = sg.Window('第一个窗口', layout,)  #支持中文

while True:  # Event Loop
    event, values = window.read(timeout=0)
    #if event in (None, 'Exit'):
    if event == None and 'Exit':  #与上面相同
        break
#window.close()  #可要可不要

main()

3.2 方法二:这么简单也能启动 #方法二:

import PySimpleGUIWeb as sg

#布局非常简单

layout = [

[sg.Text('Hello World')],  #文本显示
[sg.Input()],              #空白输入框
[sg.Combo(['Combo 1'])],
[sg.Text('你好 世界!')],   #支持中文
[sg.InputText('男')], #默认初始内容的输入框
[sg.Ok(size=(5,1)), sg.Cancel(size=(5,1))],

] #定义窗口,窗口名称

window = sg.Window('第一个窗口', layout)

while True:

event, values = window.read(timeout=0)
if event == None and 'Exit':
    break

3.3 方法三:

import PySimpleGUIWeb as sg

#定义主函数

def main():

#布局
layout = [
    [sg.Text('Hello World')],  #文本显示
    [sg.Input()],              #空白输入框
    [sg.Combo(['Combo 1'])],
    [sg.Text('你好 世界!')],   #支持中文
    [sg.InputText('男')], #默认初始内容的输入框
    [sg.Ok(size=(5,1)), sg.Cancel(size=(5,1))],
]
#定义窗口,窗口名称
window = sg.Window('第一个窗口', layout,)

i = 0
while True:
    event, values = window.read(timeout=1)
    if event != sg.TIMEOUT_KEY:
        #print(event, values)
        pass
    if event is None:
        break
    i += 1
window.close()

if name == "main": main() #main()

4 网页弹窗:

========

4.1 代码:

除了第一个导出模块字里有web三个字母

代码其他部分没感觉在写网页代码,而是简单的python代码,超简单

import PySimpleGUIWeb as sg

#省略pack、grid和place布局,超级简单

layout = [

#注意key的表示方法
[sg.Text('Your typed chars appear here:'), sg.Text('', key='_OUTPUT_')],
[sg.Input('', key='_IN_')],
[sg.Button('Show'), sg.Button('Exit'), sg.Button('Blank')]

]

window = sg.Window('网页窗口弹窗', layout)

while True: # Event Loop

#读取窗口内容
event, values = window.read()
#退出定义
if event in (None, 'Exit'):
    break
    window.close()
#定义按钮show的功能
if event == 'Show':
    #网页版弹出框,显示数值values
    sg.popup('一个网页窗口弹窗!', ' You typed ', values['_IN_'])

window.close()

4.2 效果图:

5 网页显示图片:代码

#在web中显示指定路径下的图片

import PySimpleGUIWeb as sg

layout = [

#指定大小,提示,右键显示功能,r在python3中可以省略
#[sg.Image(filename='/home/xgj/Desktop/PySimpleGUIWeb/4.jpeg',size=(400,400),tooltip='阳光灿烂',right_click_menu=True)],
[sg.Image(filename=r'/home/xgj/Desktop/PySimpleGUIWeb/4.jpeg')],

]

#定义窗口,窗口名称和布局

window = sg.Window('图片显示窗口', layout) #支持中文

Event Loop

while True:

event, values = window.read(timeout=0)
if event == None and 'Exit':  #与上面相同
    break

window.close()