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也会不一样.