PySimpleGUI 简介
说明:本文请随意引用或更改,只须标示出处及作者,作者不保证内容絶对正确无误,如造成任何后果,请自行负责.
PySimpleGUI 简介#
创建图形用户界面 (GUI) 可能很困难,有许多不同的 Python GUI 工具包可供选择。最常提到的前三名是 Tkinter, wxPython 和 PyQt (或 PySide2). 但是 PySimpleGUI 的较新工具包,其目的是使创建 GUI 更加容易。
PySimpleGUI 主要的作用是成为 Tkinter, wxPython 和 PyQt 之上的抽象层。您可以将其视为包装器,拉近设计者与 GUI 的距离。虽然建立 GUI 变的很简单,相对的有很多细节被忽略掉,也就是说你只能按 PySimpleGUI 所提供的功能来使用。这个版本是架设在 Tkinter 之上,当然还有其他的版本,像是 PySimpleGUIQt, PySimpleGUIWx, PySimpleGUIWeb, …
所以说优点呢,就是简单,缺点也是简单,以下大约说明一下使用方法,其他的 GUI 很难在短短一篇文章就能说个大槪.
使用 PySmpleGUI, 基本上分成三大部份:
- 视窗布局
- 启动视窗
- 事件处理
视窗布局
- layout = [[第一行所有的部件], [第二行所有的部份], [第三行所有的部件], …]
- 所有的部件 Element 类似 tkinter 中的部件 Widget, 同样有一堆选项,绝大部份的选项都有预设值,通常,可能只要设置几项就够用了。比如按钮,要设置是上面的文字,字体,按钮大小,能产生事件,按钮代表字串,其他的 PySimpleGUI 会有相对的预设值.
- 简单的范例如下,两行文字,第一行文字后面有个按钮.
- 还有一些容器的部件,可以建立更复杂的布局.
import PySimpleGUI as sg
layout = [
[sg.Text('这是第一行, 后面有一按钮', font=font, size = (20, 1)),
sg.Button('结束', font=font, size=(6, 1), enable_events=True, key='Quit')],
[sg.Text('这是第二行', font=font, size=(20, 1))]]
启动视窗
加上以下这一行,视窗才会真正的建立。但这样还不行,因为那只是视窗,要有事件的处理才能真正算的上是 GUI.
window = sg.Window('这是视窗标题', layout=layout, finalize=True)
事件处理
所谓的事件,比如输入设备的动作,像鼠标,键盘,部件的动作,以及程序的触动等等,这些全部都使用一个动作来读取,然后程序的主迴圈不停的循环读取,再根据事件的种类处理。范例如下.
# def do_something(value):
# pass
while True:
event, values = window.read()
"""
sg.WIN_CLOSED 是视窗关闭事件, 'Quit' 是布局中按钮的代表字串
"""
if event in [sg.WIN_CLOSED, 'Quit']:
break
# elif event == '其他部件的代表字串':
# value = values['其他部件的代表字串']
# do_something(value)
window.close()
就这样,GUI 最基本的轮廓就完成了,简单介绍就这样,有需求再深入介绍一些细节.
本作品采用《CC 协议》,转载必须注明作者和本文链接
感觉 PySimpleGUI 制作出来的画面像 kivy
这要看它是建立在什么底层的 GUI 上面,还有就是看你怎么建立,比如按钮使用图片,以及使用文字,看起来就会不一样. 比如在不同的平台,同样的代码,GUI 也会不一样.