• PySimpleGUI 使用浅谈


    1. 背景

      PySimpleGUI是一个简单易用的Python GUI库,它提供了一种直观且快速创建图形用户界面的方式。

    2. 安装

    pip install PySimpleGUI

    3. PySimpleGUI 的基本结构

    一个基本的 PySimpleGUI 程序主要包括以下几个部分:

    1. 导入 PySimpleGUI 库

    2. 定义窗口的布局

    在PySimpleGUI中,窗口的布局是使用一个二维列表来定义的。这个列表包含了要在窗口中显示的各种组件,如按钮、文本框等。每个组件都有一个或多个属性,如标识符、文本、颜色等。通过定义布局,可以确定窗口中组件的位置和排列方式

    3.创建窗口

    使用定义好的布局,可以创建一个窗口对象。窗口对象是应用程序与用户交互的主要界面。创建窗口时,需要提供一个标题作为窗口的名称,并将布局作为参数传递给sg.Window类的构造函数。

    4. 事件循环

    一旦窗口被创建,就需要进入事件循环,以便监听和响应用户的操作。在PySimpleGUI中,事件循环是通过window.read()方法实现的。该方法会阻塞程序的执行,直到发生一个事件(如按钮被点击、窗口关闭等)。一旦事件发生,window.read()方法会返回一个元组,其中包含事件和相应的值(如按钮的标识符、文本框的内容等)

    5. 关闭窗口

    在事件循环结束后,需要关闭窗口以释放资源。可以使用window.close()方法来关闭窗口对象。

    下面是一个简单的示例:

    import PySimpleGUI as sg
     
    # 定义窗口的布局
    layout = [
        [sg.Text("Hello from PySimpleGUI")],
        [sg.Button("OK")]
    ]
     
    # 创建窗口
    window = sg.Window("Demo", layout)
     
    # 事件循环
    while True:
        event, values = window.read()
        if event == "OK" or event == sg.WIN_CLOSED:
            break
     
    # 关闭窗口
    window.close()

    4. PySimpleGUI 的主要组件

    PySimpleGUI 提供了许多预定义的组件,以下是一些常用组件的使用方法及其参数含义:

    4.1 Text 组件

    Text 组件用于在界面上显示一些文本。

    sg.Text('This is some text')
    

    主要参数:

    • text(str):要显示的文本。
    • size((int, int)):文本框的大小(字符宽度, 行数)。
    • auto_size_text(bool):如果为 True,文本框将根据内容自动调整大小。
    • click_submits(bool):如果为 True,当用户点击文本时,将触发一个事件。

    4.2 Button 组件

    Button 组件用于创建一个按钮。

    sg.Button('Click me')
    

    主要参数:

    • button_text(str):按钮上显示的文本。
    • size((int, int)):按钮的大小(字符宽度, 行数)。
    • auto_size_button(bool):如果为 True,按钮将根据内容自动调整大小。
    • bind_return_key(bool):如果为 True,当用户按下回车键时,将触发按钮点击事件。

    4.3 InputText 组件

    InputText 组件用于创建一个文本输入框。

    sg.InputText('Default text')
    

    主要参数:

    • default_text(str):输入框的默认文本。
    • size((int, int)):输入框的大小(字符宽度, 行数)。
    • password_char(str):如果设置,输入框将隐藏输入,显示此字符。

    4.4 Checkbox 组件

    Checkbox 组件用于创建一个复选框。

    sg.Checkbox('Check me')
    

    主要参数:

    • text(str):复选框旁边显示的文本。
    • default(bool):复选框的默认状态,如果为 True,复选框将被选中。

    4.5 RadioButton 组件

    RadioButton 组件用于创建一组单选按钮。

    sg.Radio('Option 1', "RADIO1", default=True),
    sg.Radio('Option 2', "RADIO1"),
    sg.Radio('Option 3', "RADIO1"),
    

    主要参数:

    • text(str):单选按钮旁边显示的文本。
    • group_id(str):单选按钮的组ID,同一组的单选按钮共享同一个组ID。
    • default(bool):单选按钮的默认状态,如果为 True,单选按钮将被选中。

    4.6 主题(Theme)
    主题用于改变应用程序的整体外观。

    主要参数:

    • theme(str):主题名称,可选值包括:'Default'(默认主题)、'DarkAmber'、'DarkBlue'、'DarkBrown'等。

    4.7 图标(Icon)

    图标用于设置应用程序的图标。

    主要参数:

    • icon(str):图标文件的路径

    4.8 布局行与列(Rows and Columns)

    布局行和列可用于创建复杂的界面结构。

    主要参数:

    • sg.Columnsg.Row中放置其他组件的列表。
    • element_justification(str):控制组件在列中的水平对齐方式,可选值有'center'、'left'、'right'。

    4.9 分割线(Separator)

    分割线用于在布局中添加分割线。

    主要参数:无

     

    使用小栗子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    import PySimpleGUI as sg
     
    # 设置主题和图标
    sg.theme('DarkAmber')
    sg.set_options(icon='my_icon.ico')
     
    # 定义布局
    layout = [
        [sg.Text('Hello from PySimpleGUI!', size=(30, 1), justification='center')],
        [sg.Image(filename='my_image.png')],
        [sg.HorizontalSeparator()],
        [sg.Text('Column 1'), sg.Text('Column 2')],
        [sg.Input(key='-IN-'), sg.Input(key='-IN2-')],
        [sg.Button('OK', image_filename='button_image.png'), sg.Button('Cancel')]
    ]
     
    # 创建窗口
    window = sg.Window('Demo', layout)
     
    # 事件循环
    while True:
        event, values = window.read()
        if event == sg.WINDOW_CLOSED or event == 'Cancel':
            break
     
    # 关闭窗口
    window.close()

      

    5. 打包成可执行程序

    要将 PySimpleGUI(或任何 Python 脚本)打包成一个可执行程序,你可以使用 PyInstaller。PyInstaller 可以将 Python 程序打包成一个单一的可执行文件,这个文件可以在没有 Python 环境的计算机上运行。

    以下是一个简单的步骤来打包 PySimpleGUI 程序:

    1. 安装 PyInstaller。在命令行中输入以下命令:

      pip install pyinstaller
      
    2. 使用 PyInstaller 打包你的 PySimpleGUI 程序。假设你的程序名为 my_program.py,你可以在命令行中输入以下命令:

      pyinstaller --onefile --windowed my_program.py
      
      • --onefile 参数表示你想要将你的程序打包成一个单一的可执行文件。
      • --windowed 参数表示你的程序是一个 GUI 程序,不需要命令行窗口。

    完成以上步骤后,你会在 dist 目录下找到一个名为 my_program.exe(在 Windows 上)或 my_program(在 Linux 和 macOS 上)的可执行文件。你可以在没有 Python 环境的计算机上运行这个文件。

    注意,PyInstaller 打包的可执行文件是平台相关的,也就是说,你在 Windows 上打包的程序不能在 Linux 或 macOS 上运行,反之亦然。如果你想要在不同的平台上运行你的程序,你需要在每个平台上分别打包。

    另外,虽然 PyInstaller 可以打包大多数 Python 程序,但是有些程序可能需要特殊的处理,例如包含复杂依赖关系或需要访问特定文件的程序。在这种情况下,你可能需要修改 PyInstaller 的配置文件或使用其他打包工具。

     

  • 相关阅读:
    html 标签
    html图片控制处理放大缩小移动多种案例(附源码)
    多进程与多线程
    Python__new__和单例对象
    SpringBoot + Vue2项目打包部署到服务器后,使用Nginx配置SSL证书,配置访问HTTP协议转HTTPS协议
    关于ribbon的重试机器,望解答
    力扣经典题目之->移除值为val元素的讲解,的实现与讲解
    【附源码】计算机毕业设计SSM网上购物系统
    leetcode解题思路分析(一百三十一)1103 - 1109 题
    基于VHDL的简易CPU设计
  • 原文地址:https://www.cnblogs.com/beyond-tester/p/17951375