面向人类的Python GUI。于2018年启动。现在是2022年,PySimpleGUI是一个活跃且受支持的项目。创建自定义GUI超级简单。325+ 个示例程序和快速入门手册。丰富的文档。主要文档位于 www.PySimpleGUI.org。乐趣和您的成功是我们的重点。示例包括使用机器学习(GUI,OpenCV集成)、Rainmeter风格桌面小部件、Matplotlib + Pyplot、PIL支持、将GUI添加到命令行脚本、PDF和图片查看器。非常适合初学者和高级GUI程序员。
项目描述
PySimpleGUIQt 在 PyPI...
PySimpleGUIQt
"Qt无丑陋之处"
(对于新手... "Qt" 发音为 "Cute")
alpha版本
开始使用 PySimpleGUIQt
欢迎来到 PySimpleGUI for Qt 的 alpha 版本!
您可以使用与旧版 PySimpleGUI 的 tkinter 版本完全相同的代码。
PySimpleGUIQt 使用 PySide2 或 PySide6 来访问 Qt。 PyQt5 支持已被移除。
将您的 PySimpleGUI 代码迁移到 PySimpleGUIQt
要将代码从 tkinter 实现迁移。请按照以下步骤操作
- 将
import PySimpleGUI
更改为PySimpleGUIQt
就是这样!好吧,也许我应该说是步骤而不是步骤。这在大多数情况下可能并不简单,但总的来说很简单。
PySimpleGUI 和 PySimpleGUIQt 之间的区别
大小
虽然您可以像在 tkinter 中那样使用“基于字符”的大小,但最好使用基于像素的大小,因为这是 Qt 所使用的。PySimpleGUIQt 将对字符大小到像素大小的转换进行了非常粗糙/基本的转换。这足以使元素至少可见。但转换可能不是理想的。
字体
字体应采用(字体家族,大小)的格式。您也可以使用较旧的基于字符串的格式,但它不适用于设置如粗体和斜体。PySimpleGUIQt 将字符串 'Courier 20' 转换为元组 ('Courier', 20)。
为 Python 3 安装 PySimpleGUIQt
pip install --upgrade PySimpleGUIQt
在 Linux 系统上,您需要运行 pip3。
pip3 install --upgrade --no-cache-dir PySimpleGUIQt
为 Python 3 安装 PySide6 / PySide2
强烈建议您使用 PySide2。如果找不到 PySide6,代码将尝试使用 PySide2。
要安装 PySide6
pip install PySide6
要安装 PySide2
pip install PySide2
PyQt5 已不再受支持。仅支持 PySide6 和 PySide2
太多的差异导致了很多麻烦。支持仅一个 Qt 端口就已经足够困难。解析 pyside2 和 pyqt5 之间的差异简直太过繁琐
测试您的安装
安装后,或者将 .py 文件复制到您的应用程序文件夹中,您可以使用 Python 测试安装。在命令提示符下启动 Python。
python3
>>> import PySimpleGUIQt
>>> PySimpleGUIQt.main()
您将在屏幕中央看到一个示例窗口。如果安装不正确,您可能会在执行这些命令期间收到错误消息
这是您应该看到的窗口
先决条件 Python 3
PySide6 或 PySide2
使用 - Python 3
要在您的代码中使用,只需导入....
import PySimpleGUIQt as sg
然后使用与任何其他在 tkinter 上运行的 PySimpleGUI 程序相同的代码。
状态
文档
有关 PySimpleGUI 的主要文档,请访问 http://www.PySimpleGUI.org。 然而,请记住,那是 tkinter 版本。 但它是目前该软件包的最佳文档。 文档字符串即将添加到这个 Qt 发布版中,但这需要一些时间。 当它们完成时,这个说明也将变得非常出色。
特性完成!(有点... 所有元素都是可用的)
所有的主要功能都已完成。它们可能没有所有选项都可用,但可以将它们添加到窗口中。这是一个令人难以置信的一周。
我希望您喜欢这个 alpha 版本!请在 GitHub 网站上发布截图。有一个问题,用户在那里发布他们的应用程序。这是一个您可以展示并让他人从您的设计中学习的地方。您的窗口不必复杂.... 所有 GUI,无论多么简单,都是我们可以从中学习的东西。
功能功能
PySimpleGUI 的这个 Qt 端口正在每日添加功能。
以下元素是“完成”(这是一个相对术语...有些比其他更完整)
- 文本
- 单行输入
- 多行输入
- 多行输出(新功能)
- 旋钮(新功能)
- 输出 - 重定向 stdout
- 旋转器
- 滑块
- 按钮 - RButtons,CButtons,快捷键按钮
- 复选框
- 单选按钮
- 列表框
- 下拉框
- 标签框架
- 列 - 使您能够创建几乎任何布局!
- 窗口 alpha 通道
- 无标题栏设置
- 输入提交多行文本
- 字体
- 文本和背景颜色
- 读取调用的超时时间
- 更改大多数元素的提交参数
- 表格
- 基本显示
- 读取选定的行
- change_submits 事件
- 更新
- 作为背景的图片(新功能)
- 图形 - 绘制线条、绘制圆形、绘制文本
- 图片元素
- 树元素
- 标签页
- 菜单
- 菜单按钮元素
缺失的功能
目前显著的缺失功能包括
- 图形元素方法 - 擦除、绘制弧线等
- 树元素 - 返回选定的行,但将这些值映射到对用户有意义的值有点困难。
仅适用于 Qt 的 PySimpleGUI 新功能(或首先在 Qt 中引入)
有一些新功能仅在 PySimpleGUIQt 中可用。包括
- 按钮菜单元素
- 旋转按钮元素
- 拉伸元素(用于在窗口内部“推动元素”)
- 系统托盘功能
- “动态”窗口可扩展和缩小(使用不可见元素)
系统托盘
这是一个 PySimpleGUIQt 专用功能。不知道如何使用 tkinter 实现。然而,它在 WxPython 上看起来可能工作。
除了运行正常窗口外,现在还可以在系统托盘下方有一个图标,您可以通过它来读取菜单事件。有一个新的 SystemTray 对象,它类似于 Window 对象。您首先获取一个,然后执行读取以获取事件。
以下是 SystemTray 对象的定义。
SystemTray(menu=None, filename=None, data=None, data_base64=None, tooltip=None):
'''
SystemTray - create an icon in the system tray
:param menu: Menu definition
:param filename: filename for icon
:param data: in-ram image for icon
:param data_base64: basee-64 data for icon
:param tooltip: tooltip string '''
您会注意到有三种不同的方式来指定图标图像。base-64 参数允许您在 .py 代码中定义一个变量,该变量是编码的图像,因此您不需要任何额外的文件。非常方便的功能。
系统托盘设计模式
以下是一个您可以使用的设计模式。
此程序将创建一个系统托盘图标并执行阻塞读取。如果从系统托盘选择“打开”,则显示弹出窗口。
import PySimpleGUIQt as sg
menu_def = ['BLANK', ['&Open', '---', '&Save', ['1', '2', ['a', 'b']], '&Properties', 'E&xit']]
tray = sg.SystemTray(menu=menu_def, filename=r'default_icon.ico')
while True: # The event loop
menu_item = tray.Read()
print(menu_item)
if menu_item == 'Exit':
break
elif menu_item == 'Open':
sg.Popup('Menu item chosen', menu_item)
该设计模式创建了一个将显示此菜单的图标:
图标
指定“图标”时,您可以使用三种不同的格式。
filename
- 文件名data_base64
- base64 字节字符串- '
data
- 在内存中的位图或其他“原始”图像
您将在初始化语句和更新方法上找到用于指定这三个选项的三个参数。
菜单定义
menu_def = ['BLANK', ['&Open', '&Save', ['1', '2', ['a', 'b']], '!&Properties', 'E&xit']]
菜单是用列表定义的。一个“菜单条目”是一个字符串,它指定
- 显示的文本
- 键盘快捷键
- 键
有关使用键与菜单一起使用更多信息,请参阅菜单键部分。
没有键和键盘快捷键的条目是一个简单的字符串 'Menu Item'
如果您想使“M”成为键盘快捷键,请在快捷键字母前放置一个 &
。 '&Menu Item'
您可以通过添加“键”来使菜单项独特,或作为识别菜单项的另一种方式,而不是显示的文本。键通过在文本部分后放置 ::
添加。
'Menu Item::key'
第一个条目可以忽略。'BLANK'
被选择用于此示例。这样做是因为通常您会在菜单栏下的某个标题下指定这些菜单。但在这里没有标题,所以用任何您想要的值填充。
分隔符 如果您想在两个项目之间添加分隔符,请添加条目 '---'
,它将在菜单中的该位置添加一个分隔符项目。
禁用菜单条目
如果您想禁用菜单条目,请在菜单条目前放置一个 !
用于对齐元素的拉伸元素
使用Stretch
元素在容器内部左对齐、右对齐或居中对齐一个或多个元素。
如果单个Stretch
元素位于一行中,它将推动该行上的其他元素向左或向右移动。如果Stretch
位于左侧,则右侧的元素将被推向右侧。
要居中对齐元素,请在其两侧放置一个Stretch
元素(同一行将有两个Stretch
元素)。
系统托盘方法
读取 - 读取上下文菜单或检查事件
def Read(timeout=None)
'''
Reads the context menu
:param timeout: Optional. Any value other than None indicates a non-blocking read
:return: String representing meny item chosen. None if nothing read.
'''
timeout
参数指定等待事件发生的时间。如果在超时期间没有任何事件发生,则返回“超时事件”。这类读取使得异步运行成为可能。要运行非阻塞调用,请在读取调用中指定timeout=0
。
读取返回所选择的菜单项的完整菜单文本,包括键。如果您指定了Open::key
作为菜单项,并且用户点击了Open
,则在读取完成后,您将收到字符串Open::key
。
读取的特殊返回值
除了菜单项之外,读取调用还可以返回几个特殊值。包括
EVENT_SYSTEM_TRAY_ICON_DOUBLE_CLICKED - 托盘图标被双击
隐藏
隐藏图标。注意,在图标隐藏时不会显示任何消息气泡。
def Hide()
关闭
与隐藏执行相同操作
def Close()
取消隐藏
显示之前隐藏的图标
def UnHide()
显示消息
在系统托盘区域图标上方显示一个气球。您可以指定要显示在气球中的自定义图标,或者可以将messageicon
设置为预设值之一。
此消息有一个自定义图标。
预设的messageicon
值包括
SYSTEM_TRAY_MESSAGE_ICON_INFORMATION
SYSTEM_TRAY_MESSAGE_ICON_WARNING
SYSTEM_TRAY_MESSAGE_ICON_CRITICAL
SYSTEM_TRAY_MESSAGE_ICON_NOICON
ShowMessage(title, message, filename=None, data=None, data_base64=None, messageicon=None, time=10000):
'''
Shows a balloon above icon in system tray
:param title: Title shown in balloon
:param message: Message to be displayed
:param filename: Optional icon filename
:param data: Optional in-ram icon
:param data_base64: Optional base64 icon
:param time: How long to display message in milliseconds :return:
'''
注意,在Windows上可能需要更改注册表设置以启用消息气泡可见。为此,您必须创建此截图中所显示的DWORD。
更新
您可以在系统托盘对象内部更新这些项目中的任何一项
- 菜单定义
- 图标
- 工具提示
更改全部或仅更改一项。
Update(menu=None, tooltip=None,filename=None, data=None, data_base64=None,)
'''
Updates the menu, tooltip or icon
:param menu: menu defintion
:param tooltip: string representing tooltip
:param filename: icon filename
:param data: icon raw image
:param data_base64: icon base 64 image
:return:
'''
带键的菜单
PySimpleGUIQt提供了将键添加到菜单项的能力。为此,您需要在菜单定义的末尾添加::和键值。
menu_def = ['文件', ['隐藏::key', '&打开::key', '&保存', ['1', '2', ['a','b']], '&属性', 'E&xit']]
菜单定义将“key”键添加到隐藏和打开的菜单项中。
如果您想更改分隔字符::为其他字符,请更改变量MENU_KEY_SEPARATOR
。
当菜单项具有键并被选择时,则返回整个字符串。如果选择了隐藏,则读取会返回隐藏::key。请注意,快捷键字符&不会被读取返回。
动态窗口(元素可见性)
最后,从版本0.20.0开始添加了增长和缩小的功能。
虽然窗口看起来是动态的,但实际上元素是在定义窗口布局时创建的。您将使用标志visible=False
创建这些“额外”元素。然后,当您希望显示这些元素时,调用元素的Update
方法,将visible
设置为true
。
在您调用 Update
方法后,调用 window.VisibilityChanged()
是很重要的,这样您的窗口才能改变大小。如果没有这个调用,您的窗口将不会缩小。它将适当地增长,但不会缩小。虽然这可能是 PySimpleGUI 代表用户完成的,但想法可能是用户希望窗口大小保持不变,元素只是出现和消失,留下空白。如果窗口自动增长和缩小,这就不可能了。只管坚强,调用 VisibilityChanged
。
enable_events
参数
现在所有能够产生事件的元素都有一个参数 enable_events
。这与旧的参数 change_submits
或 click_submits
是相同的。想法是统一使用一个所有元素都使用的名称。旧的参数将继续工作,但文档和示例程序将引导您远离它们,并转向使用 enable_events。
发行说明
0.12.0 - 2018年11月20日
正确恢复 Output Element 被删除时的 stdout
添加了 Finalize 能力
改进的多窗口处理...也许终于修复了!
单选按钮默认值
旋钮元素默认值
显示树的展开选项
弹出窗口标题
0.13.0 - 2018年11月22日
输入文本和多行输入的焦点
-
获取焦点
-
设置焦点 Window.FindElementWithFocus 对多行输入有效
-
更改提交
-
更新 - 禁用,附加
多行输出 - 更新值,附加,禁用,获取值 文件类型用于打开文件 初始文件夹,文件类型,用于浏览按钮 文件类型采用 tkinter 数据格式 标准化 Find Element With Focus 现在适用于输入和多行输入 更多多窗口处理 文本元素输入文本禁用 正确的 Combobox 大小使用可见项参数 输入和多行输入的正确默认值 多行输入的更改提交 水平和垂直分隔符 PopupGetFile 和 PopupGetFolder - no_window 选项有效
0.14.0 - 2018年11月24日
使用 relief 参数设置滑动条刻度位置 按钮菜单元素 多行.Update 字体参数 Text.Update 颜色和字体现在有效 Button.Update 支持窗口元素 = 窗口.FindElement 对所有元素更好的字体支持 - 下划线,粗体 元素填充 - 完全重做 文本元素填充 按钮填充 输入文本填充 输入文本密码字符 列表框填充 Combobox 填充 多行填充 复选框填充 单选按钮填充 进度条填充 输出填充 图像填充 图表填充 滑动条 - 使用 relief 参数设置刻度 Dial - 使用分辨率和刻度间隔设置刻度信息 表格填充 树填充 分隔符填充 强制窗口大小应该意味着窗口大小更好 Popup - 更好的布局
0.15.0 2018年11月24日
新的系统托盘功能!Text 元素的 margin 参数。接受 4 个整数值 禁用时修正按钮颜色。目前将它们恢复到原始颜色 支持所有支持该功能的元素(输入,滑动条,表格,树等)的边框深度 错误修复 Element 填充做得不正确!对此表示歉意
0.16.0 2018年11月24日
更轻松地强制使用 PyQt5 进行测试 为托盘图标预定义事件
- 双击
- 图标激活
- 消息点击
- 轮询的超时键
托盘图标提示菜单键具有可编程分隔符 更好的元素填充层次结构 菜单栏现在返回值,与 ButtonMenu 相同
0.17.0 2018年11月24日
Window.Hide 和 UnHide 方法
0.18.0 2018年11月26日
所有元素的提示,所有系统托盘功能的完成 读取带或不带超时 从 3 个来源指定图标 使用自定义或预设图标显示消息 更新
- 菜单
- 工具提示
- PopupScrolled - 新的位置参数,修复了完成时未关闭窗口的 bug
0.19.0 2018年11月28日
可以通过在前面添加“!”来禁用菜单项,禁用菜单适用于菜单、按钮菜单、系统托盘菜单。组合 - 更新方法 - 值、值、禁用、字体 列表框 - 更新方法 - 值、禁用 列表框 - SetValue 方法 - 设置所选项 单选按钮 - 更新方法 - 值、禁用 复选框 - 更新方法 - 值、禁用 滚动条 - 更新方法 - 值、值、禁用 滚动条 - change_submits 功能 图片 - 新功能!点击_submits 选项(像按钮一样) 窗口 - 获取屏幕尺寸 滑块 - 禁用 旋钮 - 禁用
0.20.0 6-Dec-2018
- 能够在字符和像素之间更改计算
- size_px 添加到所有具有大小参数的元素
- 通用元素.Update(窗口, 背景颜色, 文本颜色, 字体, 可见)
- 所有元素都添加了可见参数
- enable_events 标志
- 输入文本 - 启用事件、可见性、size_px
- 输入文本更新添加了功能
- 能够突出显示输入字符串
- 背景、文本颜色和字体
- 组合 - 启用事件、可见性、size_px
- 组合 - 自动完成功能
- 组合 - 添加到更新 - 背景颜色、文本颜色、字体、可见
- 列表框 - 启用事件、可见性、size_px
- 列表框 - 从字符到像素的更好缩放
- 列表框 - 能够使用索引、文本颜色、字体、可见性更新
- 单选按钮 - 启用事件、可见性、size_px
- 单选按钮 - 更新添加 - 背景颜色、文本颜色、字体、可见
- 复选框 - 启用事件、可见性、size_px
- 复选框 - 更新添加 - 背景颜色、文本颜色、字体、可见
- 滚动 - 启用事件、可见性、size_px
- 滚动 - 更新添加 - 背景颜色、文本颜色、字体、可见
- 多行输入 - 启用事件、可见性、size_px
- 多行输入 - 更新添加 - 背景颜色、文本颜色、字体、可见
- 多行输入更好的字符到像素缩放
- 多行输出 - 启用事件、可见性、size_px
- 多行输出 - 更新添加 - 背景颜色、文本颜色、可见
- 文本 - 启用事件、像素大小
- 文本 - 更新添加了可见性
- 输出 - 可见、size_px
- 输出 - 添加了带有新值、背景颜色、文本颜色、字体、可见性的更新功能
- 按钮 - 启用事件、可见、size_px
- 按钮 - 颜色选择器功能完成
- 按钮 - 颜色选择器可以针对(None,None),这将存储与Read()值一起返回的值
- 按钮 - 修复了SaveAs按钮代码中的错误。过滤变量错误
- 按钮 - 更新添加了字体、可见
- 按钮 - 新的SetFocus()方法将焦点设置到按钮上
- 按钮菜单 - 实现了更新方法,包括菜单定义更改、文本、按钮颜色、字体、可见
- 进度条 - 添加了可见性和size_px
- 进度条 - 添加了用于更改可见性的更新方法
- 图像 - 事件、size_pix、可见
- 图像 - 现在可以为图像获取点击事件!
- 图像 - 更新添加了可见性
- 图表 - 可见性、size_px
- 图表 - 更新方法用于更改可见性
- 框架 - 可见性、size_px
- 框架 - 添加了控制可见性的更新方法
- 框架中的所有不可见元素也将不可见
- 标签 - 添加了可见参数,但尚未启用!
- 标签组 - 启用事件、可见性
- 标签组 - 更新用于控制可见性
- 滑块 - 启用事件、size_px
- 滑块 - 更新方法现在包括可见性
- 旋钮 - 启用事件、size_px、可见性
- 旋钮 - 添加了可见性控制更新方法
- 列 - 添加了可见性
- 列 - 添加了用于控制可见性的更新方法
- 列中的所有不可见元素也将不可见
- 菜单栏 - 添加了可见性
- 菜单栏 - 更新现在可以在运行时更改菜单定义并控制可见性
- 表格 - 启用事件、size_px、可见性
- 表格 - 更新方法可以控制可见性
- 树形图 - 启用事件、size_px、可见性
- 树形图 - 更新方法可以控制可见性
- 当使用 Qt 时必须调用的 VisibilityChanged() 函数,以便窗口可以缩小或放大
- 现在可以在窗口创建之前调用 window.GetScreenDimensions
- window.Size 属性
- 所有快捷按钮和浏览按钮都添加了 enable_events
- 可以从文件设置按钮图像
- 组合框 - 可以设置默认值
- 组合框 - 只读设置。允许用户编辑值
- 菜单 - 可以通过在条目前面添加 ! 来禁用/启用菜单的任何部分
- 标签页 - 可以设置标签文字颜色、背景颜色、选中标签的背景颜色
- 标签页 - 可以设置小部件区域的背景颜色
- 滑块 - 分页工作正常(使用页面上下或滑块区域来推进滑块)
- 树形图 - 实现了设置可见行数的功能
- 每个窗口增加了 5 像素。之前在右侧有文本被截断的问题
- SetOptions - 可以更改弹出窗口中默认错误按钮的颜色
0.21.0 - 2018-12-9
- 移除了全局变量的使用 - 使用静态类变量代替
- Listbox.Get() 将返回当前的列表框值
- 进度条现在支持颜色
- 进度条现在可以是垂直的
- 可以更改条或背景和背景颜色
- (条颜色,背景颜色 - 使用默认值时为 None)
- Table num_rows 参数实现
- Table.Update - 可以更改可见行数
- Window 可调整大小参数 - 实现,默认值从 False 更改为 True
- Window.Move - 实现
- Window.Minimize - 实现
- Window.Disable - 实现
- Window.Enable - 实现
- Window.CurrentLocation - 实现
- 修复了组合框中太小的滚动条
- 修复了列表框中太小的滚动条
- 将 "text" 窗口更改为复杂窗口以进行快速回归测试(尝试单独运行 PySimpleGUIQt.py)
0.22.0 - 2018-12-9
- Spin.Get 方法 - 获取当前旋钮值
0.23.0 PySimpleGUIQt
- 修复了与最新 PySide2 版本一起发生的崩溃问题!!!
- OneLineProgressMeter 有了巨大的更新
- 调试窗口获得了标题和 do-not-reroute-std-out 选项
- 弹出窗口获得标题选项
- PopupScrolled 获取非阻塞选项
- 默认图标以 Base64 格式包含
- 将字符缩放从 (10,25) 更改为 (10,35)
- 将像素到字符截断从 10 更改为 12
- 将进度条默认大小从 250 更改为 200
- 重新设计 _my_windows 全局变量 / 类以使用 Window 类变量
- 更新元素/小部件的方式有所改变。需要正确使用 {}
- InputText 支持拖放
- 支持 Checkbox.Get()
- 支持字符串在 spinbox 中
- 向输出元素添加了 Update 方法
- Button 默认文件类型从 . 更改为 *
- 支持 Tab enable_events 因此现在它们会生成事件
- Table.Update 可以更改表格的行数
- Window 类现在管理活动弹出窗口的列表、用户定义的图标、QTApplication、打开的窗口数
- Window 可调整大小参数默认值从 False 更改为 True
- Window 新参数 - disable_minimize
- Window.GetScreenDimensions 添加
- Window.Move 添加
- Window.Minimize 添加
- Window.Maximize 添加
- Window.Disable 添加
- Window.Enable 添加
- Window.BringToFront 添加
- Window.CurrentLocation 添加
- TabGroup 现在在返回值中返回选中的标签
- 全新的样式生成类和函数(希望它能工作!)
- 重新设计列、文本、按钮、输入框、组合框、列表框、多行输入框、多行输出框、进度条、旋转框、输出框的样式
- 进度条颜色现在正确
- 标签页更改时生成事件
- "更好的"表格支持。现在使用num_rows,并样式化滚动条
- 树元素可以支持包括base64在内的多种类型的图标
- 修复了树元素滚动条
- 可以使用SetOptions设置图标
- PySimpleGUIQt.py的主程序获得了很好的测试框架,显示了大量的元素
0.24.0 PySimpleGUIQt
- do_not_clear默认为TRUE!适用于输入和多行输入/输出
- 表格的关键事件(不确定实际实现了哪些)
- 树图标现在可以是字节,除了文件名!(更多Base64支持)
0.25.0 PySimpleGUIQt 5-Apr-2019
- 使用内置的默认Base64标志!(不再需要.ico文件)
- 为元素添加了新的快捷键
- I = 输入文本
- B = Butt = Btn = 按钮
- 将用户提供的按钮文本转换为字符串,以防它不是字符串
- 在Window调用中的Parameter
icon
可以是一个Base64字节字符串,也可以是文件名
0.26.0 11-Apr-2019 PySimpleGUIQt
- 新增的Window参数布局,因此可以跳过调用Layout
0.28.0 PySimpleGUIQt 5-Sep-2019
这是一个漫长的漫长的漫长的过程
- PEP8-ified!所有方法和函数都有PEP8等效项!!这是一个巨大的变化
- 代码中的版本号
- 新的键字典 - Window.AllKeysDict在1个地方集中了所有窗口的键,以便更快的查找
- Element.Widget提供了访问低级Qt Widget的权限
- 除了单行外,还支持多行缩放
- 单行缩放默认像素截止值从12提高到15
- 像素转换在Elements中完成,并通过Element类作为size_px传递
- 将许多私有函数和方法重命名为以_开头
- "可调用"元素 - element(new_value)将导致element.update(new_value)被调用
- 除了Output元素之外,删除了所有
del
- 按钮 - 添加了点击方法。您的程序可以像用户一样点击按钮
- ButtonbMenu - 添加了点击方法,就像在按钮元素中一样
- 图形元素
- 添加了DrawRectangle方法
- 添加了RelocateFigure方法
- 添加了DrawLine、DrawCircle、DrawText的ID返回
- 添加了Erase方法来清除整个图形
- 标签 - 添加了Select方法,可以像用户点击一样选择标签
- 标签组 - 添加了Get方法。返回当前选中的标签键,如果没有设置键,则返回标签的文本
- 表格 - Get方法返回表格 - 允许用户编辑表格并获得结果的极好方式
- 系统托盘 - 如果在创建时未提供图标,则使用默认的Base64图标
- 窗口 - 新的finalize参数消除了添加链式调用finalize的需要
- Window.FindElement - 添加了silent_on_error参数
- Window[key]与Window.FindElement(key)相同
- 调用窗口对象将调用该窗口的Read
- 修复了文件类型。浏览文件时,由于错误,(*)被添加到文件类型中
- 组合框返回通过Values列表中的索引提供的确切值,而不是Qt中的字符串
- 列表框返回实际提供的项
- 旋转框返回实际提供的项
- 标签组返回标签键
- 查找具有焦点的元素现在返回元素,而不管其类型如何(任何类型的元素都可以返回)
- 单选按钮现在如果启用则返回事件
- 图形元素背景颜色添加,使用新的样式类
- 支持表格标题(以前不支持的地方)
- 弹出窗口现在在Window调用中使用新的布局参数,并使用键
0.30.0 PySimpleGUIQt 16-Nov-2019
- 主题!!提供超过100种外观和感觉主题供选择!
- 新增func preview_all_look_and_feel_themes(),将显示一个大型窗口,显示所有可能的主题
- 元数据!现在所有元素创建和访问时都可用,且可直接由程序访问
- 元数据添加到系统托盘对象和窗口对象
- 元数据参数添加到所有快捷按钮和功能
- 已完成PyQt5代码的删除
- 添加了多行(输入)的ML、MLine快捷键
- 添加了多行输出的MLineOut快捷键
- 文本元素的文本现在是可选的
- 修复了浏览文件按钮的bug。之前只能获取列表中的第一个项目,而不是完整的文件名列表
- BMenu快捷键用于按钮菜单
- PBar、Prog快捷键用于进度条
- 现在在Slider.Update中正确设置了范围
- 现在支持菜单栏的背景颜色
- 窗口大小增加了5个额外像素。现在总共增加了10个,以防止内容被裁剪
0.31.0 PySimpleGUIQt 23-Dec-2019
主题和更多!
- 添加了端口号字符串,以便可以识别正在使用哪个端口(PySimpleGUIQt)
- 删除了特定于Mac的按钮和系统颜色设置。不清楚为什么它们存在,因为这是Qt,而不是tkinter
- 像所有PySimpleGUI端口一样,默认主题现在是"DarkBlue3"
- TRANSPARENT_BUTTON重新定义为字符串,说明如果你使用它,你就不会得到你想象中的东西
- BROWSE_FILES_DELIMETER,以便可以将其更改为不同于分号(;)的字符,因为分号在系统文件名中是有效字符
- 可以拖放到多行输入元素中!
- 多行(hmmm...但不是多行输出..可能需要添加它)的彩色文本输出
- 树元素
- 支持enable_events
- 读取时返回所选行
- 窗口 - 改进了窗口布局的错误检查和警告
- 按钮 - 变更以帮助恢复动画
- TabGroup - 现在支持标签位置
- left、right、top、bottom、lefttop、leftbottom、righttop、rightbottom、bottomleft、bottomright、topleft、topright
- 表格和树 - 文本颜色和背景颜色现在起作用了。看起来之前没有起作用
0.32.0 PySimpleGUIQt 4-Apr-2020
“Jeez... 自从上次发布以来已经太久了”的发布
亮点 - 读取时关闭(单行GUIs!)、打印到多行、可滚动列
- 修复了Listbox.update
- 添加了Graph.change_coordinates
- 添加了Image.Widget
- 当在Comboxbox中输入手动数据时返回正确的值
- Multiline.print - 新的打印功能
- Multiline将光标移动到末尾
- 可滚动列
- 添加了Listbox.get
- 修复了在Text Element中未忽略可见性
- Window.read - close参数(YES! 单行GUIs再次出现)
- Multiline readonly参数在更新时
- 打印固定分隔符以作为正常打印的行
- 打印(多行)添加了自动滚动参数
0.33.0 PySimpleGUIQt 6-May-2020
- 添加了扩展功能
- Element.row_frame - 元素包含的QHBoxLayout
- Column.vbox_layout - 包含在Column元素中的QVBoxLayout
0.34.0 PySimpleGUIQt 10-May-2020
这一次真的添加了常量。我不知道这些更改是如何丢失的,但它们确实丢失了。
- 添加了常量
- WIN_CLOSED和WINDOW_CLOSED
- EVENT_TIMEOUT和TIMEOUT_EVENT
0.35.0 PySimpleGUIQt 6-Jun-2020
元素在窗口和容器内的对齐方式!终于实现了统一的对齐方式
- 当任何单选元素更新为False时,整个GROUP都会重置,因此不会选择任何内容
- 修复了Multiline.get,使其能够正确地返回值,之前总是返回None
- 修复了MultilineOutput.get,使其能够正确地返回值,之前总是返回None
- 说明中提到我修复了Frame Element背景颜色bug,但我看不到在哪里/如何修复
- 添加了element_jutification,以便所有这些元素内部的所有元素都将相应地对齐。
- 对于PySimpleGUIQt仅限,默认是"float",它设置无。按钮将扩展到窗口的宽度
- 有效值是 'l'、'r'、'c'。可以拼出来,但只使用第一个字母。
- 窗口
- 框架
- 列
- 选项卡
- 表格元素添加
- 标题背景颜色
- 标题文字颜色
- 标题字体(尚未连接)
0.36.0 PySimpleGUIQt 3-Dec-2022
- 增加了对 PySide6 的支持(感谢:Idan Miara)
设计
作者
PySimpleGUI 组织 PySimpleGUI.org
演示代码贡献者
许可证
GNU Lesser General Public License (LGPL 3) +
版权 2018、2019、2020、2022 PySimpleGUI
致谢
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。