PySimpleGUI 简介

说明:本文请随意引用或更改,只须标示出处及作者,作者不保证内容絶对正确无误,如造成任何后果,请自行负责.

PySimpleGUI 简介#

创建图形用户界面 (GUI) 可能很困难,有许多不同的 Python GUI 工具包可供选择。最常提到的前三名是 Tkinter, wxPython 和 PyQt (或 PySide2). 但是 PySimpleGUI 的较新工具包,其目的是使创建 GUI 更加容易。

PySimpleGUI 主要的作用是成为 Tkinter, wxPython 和 PyQt 之上的抽象层。您可以将其视为包装器,拉近设计者与 GUI 的距离。虽然建立 GUI 变的很简单,相对的有很多细节被忽略掉,也就是说你只能按 PySimpleGUI 所提供的功能来使用。这个版本是架设在 Tkinter 之上,当然还有其他的版本,像是 PySimpleGUIQt, PySimpleGUIWx, PySimpleGUIWeb, …

所以说优点呢,就是简单,缺点也是简单,以下大约说明一下使用方法,其他的 GUI 很难在短短一篇文章就能说个大槪.

使用 PySmpleGUI, 基本上分成三大部份:

  • 视窗布局
  • 启动视窗
  • 事件处理
  1. 视窗布局

    • 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))]]
  1. 启动视窗

    加上以下这一行,视窗才会真正的建立。但这样还不行,因为那只是视窗,要有事件的处理才能真正算的上是 GUI.

window = sg.Window('这是视窗标题', layout=layout, finalize=True)
  1. 事件处理

    所谓的事件,比如输入设备的动作,像鼠标,键盘,部件的动作,以及程序的触动等等,这些全部都使用一个动作来读取,然后程序的主迴圈不停的循环读取,再根据事件的种类处理。范例如下.

# 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 协议》,转载必须注明作者和本文链接
Jason Yang
讨论数量: 2

感觉 PySimpleGUI 制作出来的画面像 kivy

5年前 评论
Jason990420

这要看它是建立在什么底层的 GUI 上面,还有就是看你怎么建立,比如按钮使用图片,以及使用文字,看起来就会不一样. 比如在不同的平台,同样的代码,GUI 也会不一样.

5年前 评论