

PySimpleGUI 使用浅谈 - 空慧居士
source link: https://www.cnblogs.com/beyond-tester/p/17951375
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

PySimpleGUI是一个简单易用的Python GUI库,它提供了一种直观且快速创建图形用户界面的方式。
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.Column
和sg.Row
中放置其他组件的列表。element_justification
(str):控制组件在列中的水平对齐方式,可选值有'center'、'left'、'right'。
4.9 分割线(Separator)
分割线用于在布局中添加分割线。
主要参数:无
使用小栗子:
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 程序:
-
安装 PyInstaller。在命令行中输入以下命令:
pip install pyinstaller
-
使用 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 的配置文件或使用其他打包工具。
Recommend
-
61
开始之前 随着业务的不断累积,目前我们 ToC 端主要项目,除去 node_modules, build 配置文件,dist 静态资源文件的代码量为 137521 行,后台管理系统下各个子应用代码,除去依赖等文件的总行数也达到 100万 多一点。 代码量意味
-
470
readme.md
-
65
【51CTO.com快译】很少有人通过像双击.exe文件那样双击.py文件来运行Python程序。普通用户(非程序员)双击.exe文件时,认为应该弹出可与之交互...
-
13
Creating a simple graphical user interface (GUI) that works across multiple platforms can be complicated. But it doesn’t have to be that way. You can use Python and the PySimpleGUI package to create nice-looking user interfaces that you and...
-
8
Simplify Python GUI Development With PySimpleGUI Creating a simple graphical user interface (GUI) that works across multiple platforms can be complicated. But it doesn’t have to be that way. You can use Python and the PySimpleGUI pa...
-
9
Python:一个简单易用的 Python GUI 图形化界面编程框架——PySimpleGUI By: taho On: 2021年7...
-
38
Download source - 1,017 B Introduction
-
8
在Flutter中,我们有各种插件可供使用,从而实现音频和视频的播放功能。 例如,可以使用“text_to_speech”插件来将文字转换为语音,使用内置的“video_player”插件轻松地实现视频播放,或者使用“audioplayers”插件实现音频播放。 对于仅需要简单播放器功能...
-
6
-
10
JMeter 源码解读 - HashTree
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK