Skip to main content

在 Web 浏览器中运行的 PySimpleGUI 端口。使用 Remi 作为 GUI 框架

项目描述

pysimplegui_logo

下载

真棒仪表

蟒蛇版本

PyPI 版本

PySimpleGUIWeb

PySimpleGUI 在您的网络浏览器中运行!

您的源代码可以在 tkinter、Qt、WxPython 上运行,现在可以在浏览器中运行(感谢 Remi)

查看repl.it,这是在浏览器中运行 PySimpleGUI 代码的新方法!

主要 PySimpleGUI 文档

要获取有关如何使用 PySimpleGUI 的 API 的说明,请参考主文档。本自述文件提供特定于PySimpleGUI 的 Web 端口的信息。

什么是 PySimpleGUIWeb?

PySimpleGUIWeb 使您能够在 Web 浏览器中运行 PySimpleGUI 程序。它利用一个名为 Remi 的包来实现这个惊人的包。

工程预发布

请注意,您正在运行 PySimpleGUIWeb 的“预发布”版本。这意味着 sh*t 在很多地方都不起作用。这也意味着您可以享受许多有效且每周都会添加的内容。

最新发展公告

遇到麻烦?访问GitHub 站点并记录问题。

安装

安装非常简单:

pip install pysimpleguiweb

如果这不起作用,您可以将文件 PySimpleGUIWeb.py 复制并粘贴到您的应用程序文件夹中。

使用 PySimpleGUIWeb

PySimpleGUI Cookbook 和 GitHub 站点上有很多示例。由于 0.1.0 版本的功能数量有限,目前很少有人会工作。在他们开始工作之前应该不会太久。

要使用 PySimpleGUIWeb,您需要导入它: import PySimpleGUIWeb as sg

从那里遵循 Cookbook 和演示程序中的代码示例。这些程序的唯一区别是 import 语句。其余代码无需修改即可工作。

要求

PySimpleGUIWeb 基于 Remi 项目。你需要在运行 PySimpleGUIWeb 之前安装 Remi:

pip install remi

您可以在其主页上了解有关 Remi 的更多信息。

https://github.com/dddomodossola/remi

PySimpleGUIWeb 仅在 Python 3 上运行。不支持旧版 Python (2.7)。

什么有效

  • 文本元素
  • 输入文本元素
  • 按钮元素
  • 组合框元素
  • 复选框元素
  • 列表框元素
  • 微调器元素(排序......现在只有数字 0 到 100)
  • 列元素
  • 图像元素
  • 多行输入元素
  • 多行输出元件
  • 输出元素(重定向 STDOUT)
  • 图形元素(您要在其上绘画的画布)
  • 表格元素(是的,表格!即使有限)
  • 窗口背景颜色
  • 元素填充
  • 超时读取
  • 读取超时 = 0
  • 弹出窗口
  • 多个窗口
  • 许多元素的更新方法(文本 100% 完成),其他元素的一些参数正常工作。

使用 repl.it 在线运行

这是真正独特和令人惊奇的事情。您可以在计算机、手机、平板电脑上的 Web 浏览器中运行 PySimpleGUI 代码,而无需在该计算机上安装 Python。通过 repl.it 和 Remi 的魔力,您可以在任何可以运行浏览器的地方运行 PySimpleGUI 代码。不仅如此,您还可以将这些程序嵌入到网页中。事实上,这个 Markdown 文档中嵌入了这些程序之一。

这是插入 iframe 的位置。在某些情况下(例如在 GitHub 上),您可能看不到该页面。

这是您的示例程序:

<iframe height="400px" width="100%" src="https://repl.it/@PySimpleGUI/PySimpleGUIWeb-Demos?lite=true" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals"></iframe>

发行说明:

0.1.0 PySimpleGUIWeb 2019 年 1 月 22 日

  • 初始发行
  • 文本元素
  • 输入文本元素
  • 按钮元素
  • 窗口类

0.2.0 PySimpleGUIWeb 2019 年 1 月 23 日

开发的第 2 天带来了字体、大小和颜色……

  • 对于所有元素(文本、输入文本、按钮):
    • 字体系列
    • 字体大小
    • 文字颜色
    • 背景颜色
    • 禁用
    • 尺寸
  • 按钮颜色
  • 读取超时(零、非零、无/挂起)
  • 窗口关闭
  • 窗口背景颜色

0.3.0 PySimpleGUIWeb 2019 年 1 月 24 日

  • 复选框元素
  • 组合框元素
  • 列表框元素
  • 所有元素的元素填充

0.4.0 PySimpleGUIWeb 2019 年 1 月 26 日

功能元件

  • 文本
  • 单行文本输入
  • 多行输入
  • 多行输出
  • 列表框
  • 组合框
  • 复选框
  • 滑块
  • 微调器(仅限数字...硬编码为 0 到 100)

新的功能

  • 所有元素的工具提示(太酷了)
  • 输入文本事件
  • 文本点击事件
  • 列表框选定事件
  • 组合框选定事件
  • 复选框更新
  • 禁用所有元素的参数
  • Window.Close 关闭服务器
  • 在打包操作期间启用异常
  • 新的测试工具练习所有元素类型

0.5.0 PySimpleGUIWeb 2019 年 2 月 1 日

  • 新的默认字体大小。以前是 Helvetica 10,现在是 Helvetica 15
  • InputText 元素单字符事件有效!(最后)
  • 列表框简单更新(仅限值)
  • 列元素!新的!
  • 列元素实验性调整设置不起作用
  • 元素背景颜色现在从容器中拾取,而不是顶级窗口
  • 自动调整文本大小
  • 自动调整按钮文本

0.6.0 PySimpleGUIWeb 2019 年 2 月 3 日

  • 将 Remi 端口更改为 0,因此将始终获得一个新的空闲端口

0.7.0 PySimpleGUIWeb 2019 年 2 月 3 日

  • 完成InputText.Update的方法,以便可以运行更多的演示

0.8.0 PySimpleGUIWeb 2019 年 2 月 8 日

  • 弹出支持!
  • 支持多个窗口

0.9.0 PySimpleGUIWeb 2019 年 2 月 14 日

  • 支持 Window.Hide、Window.UnHide(更好的多窗口支持)

0.9.1 PySimpleGUIWeb

  • 由于某些代码执行的多行滚动不正确并且有时程序崩溃而紧急释放

0.10.0 PySimpleGUIWeb 2019 年 2 月 16 日

  • 完成 Text.Update 方法。现在可以改变:
    • 文本
    • 字体系列和大小
    • 背景颜色
    • 文字颜色
    • 能见度
  • 已完成 Button.Update(图像除外)
  • 已完成 Spin.Update,但范围除外。这个元素仍然很残缺
  • Completed Slider.Update - 可以更新值、可见性、禁用,但不能更新范围
  • 图像元素!
  • 图像元素的事件
  • Image.Update 更改图像

0.11.0 PySimpleGUIWeb 2019 年 2 月 25 日

  • 滑块 - 可以使用 .Update 方法更新范围
  • 允许控制所有 Remi 启动设置的新窗口参数
  • 新窗口参数和默认值:
    • web_debug=假
    • web_ip='0.0.0.0'
    • web_port=0
    • web_start_broswer=真
    • web_update_interval=.00001
  • 可以设置窗口背景图像(有时可以使用)
    • 努力理解“资源”设置以便可以处理文件
    • 我有路要走

0.12.0 PySimpleGUIWeb 2019 年 2 月 28 日

  • Combo.Update 现在功能齐全

0.13.0 PySimpleGUIWeb 2019 年 3 月 5 日

  • 向窗口添加了新参数 - web_multiple_instance
    • 与其他 Window web 参数一样,此值在启动时传递给 Remi
    • 默认值为 TRUE(以前我认为 Remi 的默认值为 False)
    • 由于对 repl.it 的评论而做出的。

0.15.0 PySimpleGUIWeb 2019 年 3 月 5 日

  • 默认情况下将 multiple_instance 参数设为 FALSE(与 True 严重混淆)

0.16.0 2019 年 3 月 13 日

  • 桌子!
    • 支持最低限度的基本表
    • 诸如交替颜色之类的事情没有完成
    • 启用事件确实有效,因此您可以立即获得点击
    • 返回的值是 1ength 1 的列表,包含被单击的单元格的值
  • 从弹出窗口中删除了对 CloseButton 的使用

0.17.0 2019 年 3 月 14 日

  • 支持更多表格功能
    • 显示行号的选项
    • 新参数row_header_text
    • 可以打开/关闭显示行号
    • enable_events
    • text_color
    • 字体
    • 可以使用 Table.SelectedItem 获取单击的项目的值。可以编码为 window.Element(' table ').SelectedItem

0.18.0 2019 年 3 月 15 日

  • 导致弹出窗口/辅助窗口崩溃的错误的修补程序
  • 表获取starting_row_num参数

0.19.0 2019 年 3 月 23 日 PySimpleGUIWeb

  • do_not_clear 默认为 TRUE!用于输入和多线输入/输出
  • 一些类型提示

0.20.0 2019 年 4 月 7 日 PySimpleGUIWeb

  • 输出元件工作!可以将标准输出重新路由到窗口
  • 为 Remi MyApp 添加了空闲功能,用于标准输出重新路由(感谢 Davide !!)
  • 新快捷方式:
    • 我 = 输入文本
    • B = Btn = 屁股 = 按钮
  • 删除了多行设置中的临时大小
  • Button - 将传入的按钮文本转换为字符串
  • 在 Image.Update 中添加了对 base64 图像的支持,但它不起作用!不要使用!
  • 将 web_update_interval=.0000001 从 0 更改为

0.21.0 2019 年 4 月 10 日 PySimpleGUIWeb

  • 如果disable_close在 Window 调用中设置了参数,那么当浏览器关闭时 Remi 不会断开连接。非常适合重新连接。

0.22.0 2019 年 4 月 11 日 PySimpleGUIWeb

  • 新窗口参数布局,因此可以跳过调用布局

0.23.0 2019 年 4 月 21 日 PySimpleGUIWeb

  • 图形元素几乎完成了!
    • 画线
    • 绘制矩形
    • 绘图点
    • 画圈
    • 绘图文本
    • 擦除
    • 移动
    • MoveFigure(按增量)
    • RelocateFigure(绘制到新位置)
    • 更新 - 用于背景颜色更改
    • 启用事件适用于单击(还没有拖动)
  • 将 Image 元素更改为使用 SuperImage 类
    • 图像元素效果更好?
    • Base64 还没有工作

0.23.1 2019 年 4 月 21 日

一次性补丁删除调试打印

0.24.0 PySimpleGUIWeb 2019 年 4 月 23 日

  • 启用 SuperImage 类以接受 base64 图像
  • 现在使用 SvgGroup 来保存所有绘图项
  • 圆圈现在可以设置轮廓颜色
  • DrawImage 仍然无法正常工作
  • 移动不起作用
  • 为组添加了重新定位
  • 惰性按钮 - 上、下、左、右(()
    • 创建带有箭头的按钮作为文本
  • 图像元素的 Base64 支持

0.25.0 PySimpleGUIWeb 19 年 4 月 25 日

  • DrawImage 方法有效!DrawImage 现在同时接受文件名和 base64 变量
  • 修复 DrawRectangle(没有通过正确的参数)

0.26.0 PySimpleGUIWeb 2019 年 5 月 1 日

  • Combo - 将值转换为字符串列表
  • Image.Update 正在使用文件名和 base64(但还没有大小控制)
  • 窗口 - 新参数 - return_key_down_events。通常它是从读取调用返回的按键事件
  • 返回键盘输入有效!
  • 完全关闭 Remi Logging(可能是个坏主意。可以改回来)
  • 重新排列代码,以便将相同的代码用于第一个窗口和后续窗口
  • Window disable_close 参数控制用户断开连接后服务器是否继续运行

0.27.0 PySimpleGUIWeb 2019 年 5 月 8 日

  • 将默认图标从字符串更改为字节
  • 新文本更新以匹配较新的调用参数
  • 添加了 image_subsample、image_size 参数以向后兼容。注意 - 未启用
  • SuperImage 更改 - 加载 base64 图像和文件
  • 修复 DrawRectangle
  • 向 DrawImage 添加了数据参数
  • 添加了删除图
  • 标签支持
    • 刚刚开始
    • 可能工作也可能不工作
  • 窗口新类变量 - AllKeysDict
    • 包含所有元素和键的字典
    • 现在由 FindElement / Element 调用用于快速查找
  • 修复未对齐的列元素和行。更改了 tk_row_frame 样式
  • 图形元素
    • enable_events 有效
    • 拖动事件有效
    • 点击事件有效

0.28.1 PySimpleGUIWeb 2019 年 5 月 15 日

  • 菜单
    • 是的,窗口顶部的完整菜单栏!
    • 另外,您可以获得更多控件来设置颜色和字体
    • 也适用于菜单键
    • 但是禁用的项目不起作用
    • 正确返回菜单事件
  • 列表框
    • 正确处理更改列表的更新调用
    • 正确返回项目列表(即使只有 1 个)
  • 按钮图形!
    • 可以指定文件名或图像数据作为源
    • 更新参数 image_data 和 image_filename 工作!
  • 在 DrawLine 中修复。没有返回 id
  • DrawRectangle 修复 - 默认为透明填充颜色。现在正确绘制坐标
  • DrawImage 似乎适用于数据和文件
  • TabGroups 的 enable_events 参数
  • 框架元素
    • 由于没有官方的 Remi Frame,现在的行为类似于 Column 元素
  • 修复获取数据的弹出窗口 - 新的字典返回值搞砸了弹出窗口。需要在内部使用密钥

0.31.0 PySimpleGUIWeb 2019 年 11 月 4 日

  • PEP8 绑定!
  • Window - 寻找元素的新方法
    • 使用 window[key] 而不是 window.FindElement(key)!!
  • Winow - “调用”现有窗口对象将调用其读取方法
  • 版本号添加了dunder版本和版本工作
  • 通过在前面添加 _ 将一些变量重命名为私有变量
  • METADATA 添加到所有元素和窗口
  • 能够“调用”一个元素。效果是调用那个元素的更新方法
  • 删除了类中的所有删除功能。做得不好而且不一致
  • 输出元素 - 修复颜色默认值,CurrentValue 包含当前显示的所有文本
  • 图像元素
    • 重写由 Remi 团队完成!!!
    • 修复了与 OpenCV 一起使用时的闪烁问题
  • 删除了很多未使用的代码
  • 添加了尚未实施项目的打印
  • Window - 添加了 finalize 参数
  • 获取屏幕尺寸现在总是返回 (0,0) 直到可以弄清楚
  • 使返回值计算更容易
  • 两种新的外观颜色设置 - Material1、Material2

0.32.0 PySimpleGUIWeb 2019 年 11 月 8 日

  • 修复了输出元素滚动。现在光标停留在末尾
  • 修复多行输出滚动。如果启用,则正确附加并自动滚动

0.33.0 PySimpleGUIWeb 2019 年 11 月 17 日

  • 向 MultilineOutput.update 方法添加了 autoscroll 参数
  • 大量新的外观和感觉主题
  • change_loo_and_feel 调用的模糊名称匹配器 - 字符串现在不必完美匹配
  • 新的 preview_all_look_and_feel_themes 函数显示主题的所有颜色

0.34.0 PySimpleGUIWeb 2019 年 12 月 24 日

主题 +

  • 替换 change_look_and_feel 调用的新主题 API(有关更多信息,请参阅主要 PySimpleGUI 端口)
  • 新的默认主题是深蓝 3
  • 添加了移植的字符串,因此可以判断这是“PySimpleGUIWeb”端口
  • 删除了禁止 Mac 使用颜色的平台特定代码,即使对于网络也是如此
  • 更改了“TRANSPARENT_BUTTON”字符串以使其无效。它被误解了,不应该被包含在任何东西中
  • 能够将文件分隔符更改为文件名以浏览文件;在他们中

0.35.0 PySimpleGUIWeb 2020 年 1 月 16 日

  • 修复了由最新的 Remi 版本引起的 Slider 崩溃
  • 从 PySimpleGUI-tk 带来最新的主题代码(文本背景颜色,将所有黑白 refs 更改为十六进制)
  • 新的 Graph.change_coordinates 方法
  • 删除了对 Image.update 中未指定图像的检查(例如,在不更改图像的情况下指定可见性)

0.36.0 PySimpleGUIWeb 2020 年 2 月 20 日

  • 创建 Image 元素时允许指定空值
  • 修复了 Remi 2020.2.5 发布后文本元素崩溃的问题
    • 崩溃将显示尝试使用方法“set_layout_orientation”

0.37.0 PySimpleGUIWeb 2020 年 4 月 14 日

赶上最新的 Remi 版本。

  • 不再向 MULTILINE、MULTILINE_OUTPUT 更新添加 \n
    • 这可能会导致您的一些问题。对此感到抱歉,但这样做是正确的,这样打印才能正常工作
  • 多行打印能力
  • MultilineOutput.print 能力
  • 修复 MultilineOutput 不自动滚动
  • 修复图像更新闪烁
  • 打印 sep char 已修复
  • 修复额外的选项卡
  • 将 SvgGroup 替换为 SvgSubcontainer(需要 Remi 2020.3.10)
  • 非常感谢 Remi 的创作者 Davide(为此以及许多其他版本)

0.38.0 PySimpleGUIWeb 2020 年 5 月 6 日

  • 添加常量
    • WIN_CLOSED 和 WINDOW_CLOSED
    • EVENT_TIMEOUT 和 TIMEOUT_EVENT

0.39.0 PySimpleGUIWeb 2020 年 6 月 6 日

窗口和容器中的元素对齐!终于有了统一的理由

  • 框架支持,但还没有任何标签……只做一个框架……嘿,这是一个开始
  • 添加了 element_jutification 以便其中的所有元素都将相应地进行调整。
    • 仅对于 PySimpleGUIQt,默认值为“float”,不设置任何内容。结果,按钮将横跨窗口
    • 有效值为“l”、“r”、“c”。您可以拼写出来,但只使用第一个字母。
    • 窗户
    • 框架
    • 柱子
    • 标签
  • 显示 Remi 版本和更多信息的新 main()

设计

作者

迈克 B。

执照

GNU 小通用公共许可证 (LGPL 3) +

致谢

如果没有 Remi 项目,这是不可能的!谢谢雷米!!!!

项目详情