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

4年前 评论
Jason990420

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

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!