Skip to main content

用于人类的 Python GUI。于 2018 年推出。现在是 2022 年,PySimpleGUI 是一个活跃且受支持的项目。创建自定义 GUI 超级简单。325 多个演示程序和食谱,可快速启动。广泛的文档。www.PySimpleG 上的主要文档

项目描述

人类的 Python GUI

人类的 Python GUI

PySimpleGUI Udemy 课程
申请折扣券:
4FD91A459D56B1029FF8
点击这里访问课程页面

将 tkinter、Qt、WxPython 和 Remi(基于浏览器)GUI 框架转换为更简单的界面。通过使用初学者理解的 Python 核心数据类型(列表和字典)来简化窗口定义。通过将事件处理从基于回调的模型更改为消息传递模型,可以进一步简化。

您的代码不需要具有面向对象的体系结构,这使得该包可以被更多的受众使用。虽然架构很容易理解,但它不一定将您限制在简单的问题上。

您有时会看到的“仅适用于简单 GUI”的总结是不正确的。有些程序并不适合 PySimpleGUI,这是真的。根据定义,PySimpleGUI 实现了底层 GUI 框架功能的一个子集。很难准确定义哪些程序非常适合 PySimpleGUI,哪些不适合。这取决于您的程序的详细信息。在每个细节上复制 Excel 是不适合 PySimpleGUI 的一个例子。

本自述文件的日文版

PySimpleGUI 需要您的支持。如果您发现 PySimpleGUI 有用,请考虑在 GitHub 或 BuyMeACoffee 上赞助该项目。在 PySimpleGUI 上全职工作是很昂贵的,而且还要支付持续的费用(域、艺术家、软件、顾问、赞助开源项目)。

给我买杯咖啡


统计数据

PyPI 统计信息和版本

传统知识 传统知识 2.7 Qt WxPython 网络(雷米)
tkinter tkinter 2.7 下载 qt wx 网络
tkinter tkinter27 下载 下载 下载
tkinter tkinter 2.7 qt wx 网络
PyPI 版本 PyPI 版本 PyPI 版本 PyPI 版本 PyPI 版本

GitHub 统计

问题 提交活动 星星 文档
GitHub 问题 提交活动 星星 文件状态
GitHub 关闭的问题 最后一次提交


什么是 PySimpleGUI

PySimpleGUI 是一个 Python 包,它使所有级别的 Python 程序员都可以创建 GUI。您可以使用包含小部件(在 PySimpleGUI 中称为“元素”)的“布局”来指定您的 GUI 窗口。您的布局用于使用 4 个支持的框架之一创建一个窗口,以显示您的窗口并与之交互。支持的框架包括 tkinter、Qt、WxPython 或 Remi。术语“包装器”有时用于这些类型的包。

您的 PySimpleGUI 代码比直接使用底层框架编写更简单、更短,因为 PySimpleGUI 为您实现了大部分“样板代码”。此外,接口被简化为需要尽可能少的代码来获得所需的结果。根据所使用的程序和框架,PySimpleGUI 程序可能需要 1/2 到 1/10 的代码量来直接使用其中一个框架创建相同的窗口。

虽然目标是封装/隐藏您在其上运行的 GUI 框架使用的特定对象和代码,但如果需要,您可以直接访问框架的依赖小部件和窗口。如果尚未使用 PySimpleGUI API 公开或访问某个设置或功能,则您不会被框架隔离。您可以在不直接修改 PySimpleGUI 包本身的情况下扩展功能。

弥合“GUI差距”

Python 已经将大量的人带入了编程社区。程序的数量和它所涉及的领域范围令人难以置信。但通常情况下,除了少数人之外,其他人都无法接触到这些技术。大多数 Python 程序都是基于“命令行”的。这对于程序员类型来说不是问题,因为我们都习惯于通过文本界面与计算机进行交互。虽然程序员对命令行界面没有问题,但大多数“普通人”会。这造成了数字鸿沟,即“GUI 差距”。

向程序添加 GUI 可以使该程序向更广泛的受众开放。它变得更加平易近人。GUI 还可以使与某些程序的交互变得更容易,即使对于那些熟悉命令行界面的程序也是如此。最后,有些问题需要 GUI。

对开源使用的认可

在演示程序或 PySimpleGUI 帐户的存储库之一中,这些包至少使用了一次。您的一些是 GUI 空白右侧的好东西。

如果您在项目中使用开源软件,请务必提供有关您使用的软件包的信息。

  • 聊天机器人
  • 简历2
  • 菲茨
  • 预测
  • gtts
  • matplotlib
  • 米多
  • mpl_toolkits
  • 通知
  • 麻木的
  • 熊猫
  • 太平船务
  • psgray
  • psutil
  • pyfiglet
  • 游戏
  • pylab
  • 派蒙克
  • 要求
  • vlc
  • win32api
  • win32con
  • win32gui
  • win32进程

以LPLG3为例

LLC3 许可中的许可条款规定:

  1. 联合作品。您可以根据您选择的条款传达组合作品,这些条款加在一起实际上不会限制对组合作品中包含的库部分的修改以及用于调试此类修改的逆向工程,如果您还执行以下每一项操作:

a) 在合并作品的每份副本中给出醒目的通知,说明其中使用了库,并且本许可涵盖了库及其使用。

b) 将 GNU GPL 和本许可文档的副本随附在组合作品中。

由于上述软件包每个都有类似的许可条款,因此我将它们列在这里,在我认为是“显着通知”的位置,我正在使用这些团体或个人的优秀作品。它们最有可能用于演示程序或此帐户下的回购之一,因为此列表包含所有内容。

你们都有我的尊重和钦佩。您正在启用更大的功能。做什么特别的东西。谁知道你启用了什么。我相信更多的人正在接受你的创作并开始体验它们。

tkinter 团队 - 如果没有您的长期工作和持续奉献,PySimpleGUI 将无处可去。一个用于 3 个不同操作系统的 GUI API?真的吗?没有代码更改之间移动?这是一个巨大的成就。你是我的第一名。谢谢你的辛劳工作。

克服“酒吧”

有人说在 Python 中学习 GUI 编程时“门槛相当高”。

当酒吧放在地上并且可以跨过时会发生什么?

这是 PySimpleGUI 项目试图回答的问题之一。这是一个幽默的看法,看看这是一个不好笑的情况。

结果令人着迷,阅读用户旅程的记录也很感人。

PySimpleGUI 首次发布后不久就开始收到电子邮件,对此我没有任何准备。它们是关于创建一个需要 GUI 的程序的终生梦想的感人而又令人心碎的故事。有些人尝试了几次,每次都放弃了。其他人一旦开始研究需要什么,就再也没有开始。

在讲述了寻找 PySimpleGUI 的漫长而多样的道路之后,故事变得相似。他们每个人都取得了成功,并表达了喜悦和感激之情。这些信息中表达的喜悦与我在整个计算机领域的职业生涯中遇到的任何事情都不一样。

正是这些电子邮件和在 GitHub 问题中看到的感谢信息让我没有决定将我的生命奉献给他的项目。


订阅公告

如果您单击Announcements GitHub Issue中的“订阅”按钮,那么您将在项目新闻发布时收到通知。此问题是获取最新 PySimpleGUI 信息的官方位置。信息发布频繁,包括发布内容、提示和技巧、文档更新等。自项目启动以来,已经发布了 1000 多个帖子。


关于我

你好呀!我是迈克。你会在这里找到我,在 PySimpleGUI GitHub 上,解决问题并不断推动 PySimpleGUI 向前发展。我将白天、夜晚和周末都献给了项目和 PySimpleGUI 用户。我们的成功最终是共享的。当你成功时,我就成功了。

虽然我是 Python 的新手,但自 70 年代以来我一直在编写软件。我职业生涯的大部分时间都花在了在硅谷创造产品上。我为 PySimpleGUI 带来了与我开发的企业产品相同的专业精神和奉献精神。你现在是我的客户。

项目目标

PySimpleGUI 项目的两个最重要的目标:

  • 正玩得开心
  • 你的成功

将乐趣作为严肃项目的目标听起来很奇怪,但这是一个严肃的目标。我发现编写这些 GUI 程序非常有趣。一个原因是编写完整的解决方案所需的时间很少。如果我们不享受这个过程,那么就会有人放弃。

有大量文档、一本食谱、100 个让您立即运行的演示程序、详细的通话参考、YouTube 视频、在线 Trinket 演示等等……所有这些都在努力创造……有趣的体验。

您的成功是一个共同的目标。PySimpleGUI 是为开发人员构建的。你是我的窥视者。看到用户和 PySimpleGUI 共同努力的结果是一个意想不到的回报。使用文档和其他材料来帮助构建您的应用程序。如果您遇到问题,可以通过在 PySimpleGUI GitHub 上打开问题获得帮助。看看下面的支持部分。


教育资源 📚

PySimpleGUI 现在有一个官方的 Udemy 课程!查看本自述文件的标题和 PySimpleGUI 文档以获取优惠券代码。该课程可在www.udemy.com/PySimpleGUI找到。 本课程是目前 PySimpleGUI 项目除了赞助和捐赠之外的唯一收入来源。

www.PySimpleGUI.org 很容易记住并且是文档所在的位置。您会在顶部找到代表多个不同文档的选项卡。该文档位于“阅读文档”上,因此每个文档都有一个目录,并且易于搜索。

有 100 多页的书面文档和 100 多页的示例程序可以帮助您快速提高效率。无需花费数天或数周的时间来学习一个 GUI 包,您可以在使用 PySimpleGUI 时在一个下午完成您的项目。

示例 1 - One-Shot 窗口

这种类型的程序称为“一次性”窗口,因为该窗口显示一次,收集值,然后关闭。它不会像在文字处理器中那样长时间保持打开状态。

一个简单的 PySimpleGUI 程序剖析

PySimpleGUI 程序有 5 个部分

import PySimpleGUI as sg                        # Part 1 - The import

# Define the window's contents
layout = [  [sg.Text("What's your name?")],     # Part 2 - The Layout
            [sg.Input()],
            [sg.Button('Ok')] ]

# Create the window
window = sg.Window('Window Title', layout)      # Part 3 - Window Defintion

# Display and interact with the Window
event, values = window.read()                   # Part 4 - Event loop or Window.read call

# Do something with the information gathered
print('Hello', values[0], "! Thanks for trying PySimpleGUI")

# Finish up by removing from the screen
window.close()                                  # Part 5 - Close the Window

代码产生这个窗口


示例 2 - 交互式窗口

在此示例中,我们的窗口将一直保留在屏幕上,直到用户关闭窗口或单击退出按钮。您之前看到的一次性窗口和交互式窗口之间的主要区别在于添加了“事件循环”。事件循环从您的窗口读取事件和输入。应用程序的核心位于事件循环中。

import PySimpleGUI as sg

# Define the window's contents
layout = [[sg.Text("What's your name?")],
          [sg.Input(key='-INPUT-')],
          [sg.Text(size=(40,1), key='-OUTPUT-')],
          [sg.Button('Ok'), sg.Button('Quit')]]

# Create the window
window = sg.Window('Window Title', layout)

# Display and interact with the Window using an Event Loop
while True:
    event, values = window.read()
    # See if user wants to quit or window was closed
    if event == sg.WINDOW_CLOSED or event == 'Quit':
        break
    # Output a message to the window
    window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI")

# Finish up by removing from the screen
window.close()

这是示例 2 生成的窗口。

这是在输入字段中输入值并单击确定按钮后的样子。

让我们快速看一下这个例子和一次性窗口之间的一些区别。

首先,您会注意到布局的差异。有两个变化特别重要。一种是将key参数添加到Input元素和Text元素之一。Akey就像一个元素的名称。或者,用 Python 术语来说,它就像一个字典键。该Input元素的键将在后面的代码中用作字典键。

另一个区别是添加了这个Text元素:

          [sg.Text(size=(40,1), key='-OUTPUT-')],

有 2 个参数,key我们已经介绍过。该size参数以字符为单位定义元素的大小。在本例中,我们指示此Text元素宽 40 个字符,高 1 个字符。请注意,没有指定文本字符串,这意味着它将是空白的。您可以在创建的窗口中轻松看到此空白行。

我们还添加了一个按钮,“退出”。

事件循环有我们熟悉的window.read()调用。

阅读之后是这个 if 语句:

    if event == sg.WINDOW_CLOSED or event == 'Quit':
        break

此代码正在检查用户是否通过单击“X”或单击“退出”按钮关闭了窗口。如果其中任何一个发生,那么代码将跳出事件循环。

如果窗口没有关闭,也没有点击 Quit 按钮,则继续执行。唯一可能发生的事情是用户单击“确定”按钮。事件循环中的最后一条语句是这样的:

    window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI")

此语句使用字符串 更新Text具有键的元素。找到带有 key 的元素。该键属于我们的空白元素。一旦从查找中返回该元素,就会调用它的方法。几乎所有元素都有方法。此方法用于更改元素的值或更改元素的某些配置。-OUTPUT-window['-OUTPUT-']-OUTPUT-Textupdateupdate

如果我们希望文本是黄色的,那么可以通过向方法中添加一个text_color参数来实现update,使其显示为:

    window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI",
                              text_color='yellow')

添加text_color参数后,这是我们的新结果窗口:

每个元素的可用参数都记录在调用参考文档和文档字符串中。PySimpleGUI 有大量文档可帮助您了解所有可用的选项。如果你查找元素的update方法Text,你会发现这个调用的定义:

如您所见,可以为一个Text元素更改几项内容。调用参考文档是一个宝贵的资源,它将使 PySimpleGUI 中的编程变得简单,嗯。


跳跃开始!获取演示程序和演示浏览器

300 多个演示程序将为您提供快速入门并提供许多设计模式,让您学习如何使用 PySimpleGUI 以及如何将 PySimpleGUI 与其他包集成。到目前为止,体验这些演示的最佳方式是使用演示浏览器。该工具使您能够搜索、编辑和运行演示程序。

要将它们与演示浏览器一起快速安装,请使用pip安装psgdemos

python -m pip install psgdemos

或者,如果您使用的是 Linux、Mac 等,则使用python3而不是python启动 Python:

python3 -m pip install psgdemos

psgdemos安装后,通过从命令行键入“启动演示浏览器”

psgdemos

SNAG-1543


布局很有趣哈哈!ðŸ〜†

您的窗口布局是“列表列表”(LOL)。窗口被分解成“行”。窗口中的每一行都成为布局中的列表。将所有列表连接在一起,您就有了一个布局……一个列表列表。

这是与以前相同的布局,Text每行添加了一个额外的元素,以便您可以更轻松地查看行的定义方式:

layout = [  [sg.Text('Row 1'), sg.Text("What's your name?")],
            [sg.Text('Row 2'), sg.Input()],
            [sg.Text('Row 3'), sg.Button('Ok')] ]

此布局的每一行都是一个元素列表,这些元素将显示在窗口中的该行上。

与使用其他框架完成 GUI 编程的方式相比,使用列表定义 GUI 具有一些巨大的优势。例如,您可以使用 Python 的列表推导式在一行代码中创建一个按钮网格。

这 3 行代码:

import PySimpleGUI as sg

layout = [[sg.Button(f'{row}, {col}') for col in range(4)] for row in range(4)]

event, values = sg.Window('List Comprehensions', layout).read(close=True)

生成这个窗口,它有一个 4 x 4 的按钮网格:

回想一下“有趣”是该项目的目标之一。直接将 Python 强大的基础能力应用到 GUI 问题上很有趣。它不是创建 GUI 的几页代码,而是几行(或通常 1 行)代码。

折叠代码

可以将窗口的代码压缩为一行代码。布局定义、窗口创建、显示、数据采集都可以写在这行代码中:

event, values = sg.Window('Window Title', [[sg.Text("What's your name?")],[sg.Input()],[sg.Button('Ok')]]).read(close=True)

显示相同的窗口并返回与显示 PySimpleGUI 程序部分的示例相同的值。能够用这么少的资源完成这么多工作,使您能够快速轻松地将 GUI 添加到 Python 代码中。如果您想显示一些数据并从用户那里获得选择,可以在一行代码而不是一页代码中完成。

通过使用简写别名,您可以使用更少的字符在代码中节省更多空间。所有元素都有一个或多个可以使用的较短名称。例如,Text元素可以简单地写为TInput元素可以写成as和as I。您的单行窗口代码因此变为:ButtonB

event, values = sg.Window('Window Title', [[sg.T("What's your name?")],[sg.I()],[sg.B('Ok')]]).read(close=True)

代码可移植性

PySimpleGUI 目前能够在 4 个 Python GUI 框架上运行。要使用的框架是使用 import 语句指定的。更改导入,您将更改底层 GUI 框架。对于某些程序,只需要导入语句即可在不同的 GUI 框架上运行,不需要进行其他更改。在上面的示例中,将导入从更改PySimpleGUIPySimpleGUIQt,将更改框架。PySimpleGUIWxPySimpleGUIWeb

进口声明 结果窗口
PySimpleGUI
PySimpleGUIQt
PySimpleGUIWx
PySimpleGUIWeb

将 GUI 代码从一个框架移植到另一个框架(例如,将您的代码从 tkinter 移动到 Qt)通常需要重写您的代码。PySimpleGUI 旨在使您能够在框架之间轻松移动。有时需要您进行一些更改,但目标是通过最少的更改获得高度可移植的代码。

某些功能(例如系统托盘图标)并非在所有端口上都可用。系统托盘图标功能在 Qt 和 WxPython 端口上可用。tkinter 上有一个模拟版本。PySimpleGUIWeb 端口中不支持系统托盘图标。

运行时环境

环境 支持的
Python Python 3.4+
操作系统 视窗、Linux、Mac
硬件 运行 PyDroid3 的台式电脑、笔记本电脑、Raspberry Pi、Android 设备
在线的 repli.it、Trinket.com(都在浏览器中运行 tkinter)
图形用户界面框架 tkinter,pyside2,WxPython,雷米

集成

在 200 多个“演示程序”中,您将找到如何将许多流行的 Python 包集成到您的 GUI 中的示例。

想要将 Matplotlib 绘图嵌入到您的窗口中吗?没问题,复制演示代码并立即将您梦想的 Matplotlib 绘图放入您的 GUI。

这些包和更多包已经准备好放入您的 GUI 中,因为每个包都有演示程序或演示 repo:

包裹 描述
Matplotlib 许多类型的图形和绘图
开放式CV 计算机视觉(通常用于人工智能)
VLC 视频回放
派蒙克 物理引擎
psutil 系统环境统计
Reddit API
json PySimpleGUI 包装了一个特殊的 API 来存储“用户设置”
天气 与多个天气 API 集成以制作天气应用程序
米多 MIDI 播放
美丽的汤 Web Scraping(GitHub 问题观察者示例)

安装

两种常见的安装 PySimpleGUI 的方法:

  1. pip 从 PyPI 安装
  2. 下载文件 PySimpleGUI.py 并放在应用程序的文件夹中

Pip 安装和升级

当前建议的调用pip命令的方法是使用 Python 将其作为模块运行。以前该命令pippip3直接进入命令行/shell。建议的方式

Windows 的初始安装:

python -m pip install PySimpleGUI

Linux 和 MacOS 的初始安装:

python3 -m pip install PySimpleGUI

要升级使用pip,您只需将 2 个参数添加到该行--upgrade --no-cache-dir

在 Windows 上升级安装:

python -m pip install --upgrade --no-cache-dir PySimpleGUI

Linux 和 MacOS 升级:

python3 -m pip install --upgrade --no-cache-dir PySimpleGUI

单个文件安装

PySimpleGUI 是作为单个 .py 文件创建的,因此您可以非常轻松地安装它,即使在 Raspberry Pi 等未连接到 Internet 的系统上也是如此。就像将 PySimpleGUI.py 文件放在与导入它的应用程序相同的文件夹中一样简单。Python 将在执行导入时使用您的本地副本。

仅使用 .py 文件进行安装时,您可以从 PyPI 获取它,或者如果您想运行最新的未发布版本,则可以从 GitHub 下载它。

要从 PyPI 安装,请下载 wheel 或 .gz 文件并解压缩文件。如果将 .whl 文件重命名为 .zip,则可以像打开任何普通 zip 文件一样打开它。您将在其中一个文件夹中找到 PySimpleGUI.py 文件。将此文件复制到您的应用程序的文件夹中,您就完成了。

PySimpleGUI 的 tkinter 版本的 PyPI 链接是: https ://pypi.org/project/PySimpleGUI/#files

GitHub repo 的最新版本可以在这里找到: https ://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/PySimpleGUI.py

现在你们中的一些人在想,“是的,但是,等等,拥有一个巨大的源文件是一个糟糕的主意”。而且,是的,有时这可能是一个糟糕的主意。在这种情况下,好处大大超过了坏处。计算机科学中的许多概念都是权衡或主观的。正如一些人所希望的那样,并非一切都是黑白的。很多时候,问题的答案是“视情况而定”。

画廊

一个更正式的用户提交的 GUI 库以及在 GitHub 上找到的 GUI 库的工作正在进行中,但在撰写本文时它还没有完成。目前有2个地方可以集中查看一些截图。希望很快可以发布 Wiki 或其他机制,以公正对待人们正在制作的令人敬畏的创作。

用户提交的图库

第一个是位于 GitHub 上的用户提交的屏幕截图问题。这是人们炫耀他们所做作品的一种非正式方式。这并不理想,但这是一个开始。

大量抓取的 GitHub 图像

第二个是从 GitHub 上的 1,000 个项目中抓取的 3,000 多张图片的大型图库,据报道这些项目正在使用 PySimpleGUI。它没有经过手动过滤,早期文档中使用了很多旧屏幕截图。但是,您可能会在其中找到一些激发您想象力的东西。


PySimpleGUI 的用途

以下部分展示了 PySimpleGUI 的一小部分用途。仅 GitHub 上就有超过 1,000 个项目使用 PySimpleGUI。为这么多人打开了可能性,真是令人惊讶。许多用户谈到以前尝试用 Python 创建 GUI 并失败了,但最终在尝试 PySimpleGUI 时实现了他们的梦想。

你的第一个图形用户界面

当然,PySimpleGUI 的最佳用途之一是让您为 Python 项目制作 GUI。您可以从请求文件名开始。为此,您只需调用一个名为popup. 有各种各样的弹出窗口,有些收集信息。

popup本身就制作了一个窗口来显示信息。您可以像打印一样传递多个参数。popup_get_如果您想获取信息,那么您将调用以.开头的函数popup_get_filename

添加单行来获取文件名而不是在命令行上指定文件名可以将您的程序转换为“普通人”可以使用的程序。

import PySimpleGUI as sg

filename = sg.popup_get_file('Enter the file you wish to process')
sg.popup('You entered', filename)

此代码将显示 2 个弹出窗口。一个获取文件名,可以浏览或粘贴到输入框中。

图像

另一个窗口将输出收集到的内容。

图像


雨量计式窗户

图像 GUI 框架的默认设置不会产生最好看的窗口。但是,只要注意细节,您可以做几件事来使窗户看起来更有吸引力。PySimpleGUI 可以更轻松地操作颜色和功能,例如移除标题栏。结果是窗口看起来不像典型的 tkinter 窗口。

这是一个示例,说明如何在 Windows 中创建看起来不像典型 tkinter 的窗口。在这个例子中,窗口的标题栏被移除了。结果是窗口看起来很像使用桌面小部件程序 Rainmeter 时发现的窗口。



您也可以轻松设置窗口的透明度。以下是相同 Rainmeter 样式的桌面小部件的更多示例。有些看起来很暗,因为它们是半透明的。 图像

这两种效果;删除标题栏并使窗口半透明,是通过在创建窗口时设置2个参数来实现的。这是 PySimpleGUI 如何轻松访问功能的示例。由于 PySimpleGUI 代码可跨 GUI 框架移植,因此这些相同的参数适用于 Qt 等其他端口。

将示例 1 中的 Window 创建调用更改为这行代码会生成一个类似的半透明窗口:

window = sg.Window('My window', layout, no_titlebar=True, alpha_channel=0.5)

游戏

虽然不是专门作为游戏开发 SDK 编写的,但 PySimpleGUI 使一些游戏的开发变得相当容易。

图像 这个国际象棋程序不仅下棋,而且还与 Stockfish 下棋人工智能集成。










图像 用户已经发布了几种扫雷游戏的变体。










图像









图像

纸牌游戏与 PySimpleGUI 配合得很好,因为使用 PySimpleGUIGraph元素时操作图像很简单。

虽然不是专门作为游戏开发 SDK 编写的,但 PySimpleGUI 使一些游戏的开发变得相当容易。






媒体捕捉和播放

图像

在 GUI 中从网络摄像头捕获和显示视频是 4 行 PySimpleGUI 代码。更令人印象深刻的是,这 4 行代码可以与 tkinter、Qt 和 Web 端口一起使用。您可以使用与使用 tkinter 显示图像相同的代码在浏览器中实时显示您的网络摄像头。

媒体播放,音视频,也可以使用VLC播放器来实现。为您提供了一个演示应用程序,以便您从一个工作示例开始。您在本自述文件中看到的所有内容都可以作为您自己创作的起点。











人工智能

图像

当两者结合在一起时,人工智能和 Python 长期以来一直是公认的超级大国。然而,经常缺少的是一种让用户使用 GUI 熟悉地与这些 AI 算法交互的方式。

这些 YOLO 演示是一个很好的例子,说明了 GUI 如何在与 AI 算法交互方面产生巨大影响。注意这些窗口底部的两个滑块。这 2 个滑块改变了 YOLO 算法使用的几个参数。

如果您只使用命令行调整 YOLO 演示,则需要设置参数,一次,当您启动应用程序时,查看它们的执行情况,停止应用程序,更改参数,最后使用新的重新启动应用程序参数。



图像

将这些步骤与使用 GUI 可以完成的操作进行对比。GUI 使您能够实时修改这些参数。您可以立即获得有关它们如何影响算法的反馈。








图像

已经发布了许多命令行驱动的 AI 程序。这本身并不是一个巨大的障碍,但在命令行上键入/粘贴要着色的文件名,运行程序,然后在文件查看器中打开生成的输出文件就足够了.

GUI 有能力改变用户体验,填补“GUI Gap”。在这个着色器示例中,用户只需要提供一个充满图像的文件夹,然后单击图像即可着色并显示结果。

程序/算法