关闭窗口可以的一边形式
if event in ('EXIT', None):
break
这是这个 GUI 编程的有趣部分。
为了真正充分利用 API,您应该使用支持自动完成或显示函数定义的 IDE。
这将使定制变得更加顺畅。
关于自定义窗口的第一部分是针对典型的、阻塞的、非持久性窗口的。
我的意思是,当您“显示”窗口时,该函数将不会返回,直到用户单击按钮或使用 X 关闭窗口。
存在另外两种类型的窗口。
1. 持久窗口——
Window.read()
方法返回,窗口继续可见。
这对于诸如聊天窗口或计时器之类的应用程序或任何在屏幕上保持活动一段时间的应用程序都非常有用。
2. 异步窗口——最棘手的。
必须非常小心。
例如 MP3 播放器或状态仪表板。
异步窗口会定期更新(刷新)。
timeout
你可以很容易地发现它们,因为它们在调用 read
时会有一个参数。
event, values = window.read(timeout=100)
立即开始调整您可以使用的每一件小事既不愉快也没有帮助。
做一些简单的窗户。
使用 Cookbook 和演示程序作为学习方式和“起点”。
橱窗设计师
对于 GUI 编程新手来说,好消息是 PySimpleGUI 有一个窗口设计器。
更好的是,窗口设计师无需培训,无需下载,而且每个人都知道如何使用它。
这是一个手动过程,但如果您按照说明进行操作,只需一分钟即可完成,结果将是一个漂亮的 GUI。
您将采取的步骤是: 1. 在纸上画出您的 GUI 2. 将您的 GUI 分成几行 3. 用元素名称标记每个元素 4. 使用标签作为伪代码编写 Python 代码
让我们举几个例子。
输入数字
.... 流行的初学者程序通常基于要求用户输入某些内容(例如数字)的游戏或逻辑谜题。
“高低”答案游戏浮现在脑海中,您尝试根据高低提示猜测数字。
第 1 步 - 绘制 GUI
第 2 步 - 分成几行
第 3 步 - 标签元素
第 4 步 - 编写代码 我们正在编写的代码是 GUI 本身的布局。
本教程只关注编写窗口代码,而不是显示它的东西,获得结果。
我们在第一行只有一个元素,一些文本。
行被写成一个“元素列表”,所以我们需要 [ ] 来创建一个列表。
这是第 1 行的代码
[ sg.Text('Enter a number') ]
第 2 行有 1 个元素,一个输入字段。
[ sg.Input() ]
第 3 行有一个确定按钮
[ sg.OK() ]
现在我们已经定义了 3 行,它们被放入一个代表整个窗口的列表中。
layout = [ [sg.Text('Enter a Number')],
[sg.Input()],
[sg.OK()] ]
最后我们可以把它们放在一个程序中来显示我们的窗口。
import PySimpleGUI as sg
layout = [[sg.Text('Enter a Number')],
[sg.Input()],
[sg.OK()] ]
window = sg.Window('Enter a number example', layout)
event, values = window.read()
window.close()
sg.Popup(event, values[0])
您的调用read
通常会返回一个字典,但在您访问它的方式上会“看起来像一个列表”。第一个输入字段将是条目 0,下一个是 1,等等。稍后您将了解key
允许您使用自己的值来识别元素而不是为您编号的参数。
示例 2 - 获取文件名
假设您已经编写了一个对某个输入文件进行操作的实用程序,并且您准备好使用 GUI 输入而不是文件名而不是命令行。按照与上一个示例相同的步骤 - 在纸上绘制窗口,将其分成几行,标记元素。
为这个编写代码同样简单。有一个棘手的事情是浏览文件按钮。值得庆幸的是,PySimpleGUI 负责将其与旁边的输入字段相关联。结果,代码看起来几乎和纸上的窗口一模一样。
import PySimpleGUI as sg
sg.theme('Dark Blue 3')