- 导入PySimpleGUI库
首先,需要在Python中安装PySimpleGUI库。可以使用 pip install PySimpleGUI 命令进行安装。然后,在Python代码中使用import语句导入PySimpleGUI库。
import PySimpleGUI as sg
- 设计GUI界面
在使用PySimpleGUI制作自动化办公小软件时,首先需要设计界面。可以使用PySimpleGUI提供的不同布局样式定义主题,例如“DefaultNoMoreNagging”、“SystemDefaultForReal”、“GreenMono”、“Material2”等样式。例如,下面代码实现了一个简单的PySimpleGUI窗口。
sg.theme('DefaultNoMoreNagging')
layout = [[sg.Text('Enter your name'), sg.InputText()],
[sg.Text('Enter your age'), sg.InputText()],
[sg.Submit(), sg.Cancel()]]
window = sg.Window('Personal Details', layout)
- 处理用户输入
接下来,需要编写代码来处理用户在输入框中输入的信息。在上面的示例中,用户需要输入姓名和年龄,然后单击“提交”按钮。
import PySimpleGUI as sg
sg.theme('DefaultNoMoreNagging')
layout = [[sg.Text('Enter your name'), sg.InputText()],
[sg.Text('Enter your age'), sg.InputText()],
[sg.Submit(), sg.Cancel()]]
window = sg.Window('Personal Details', layout)
while True:
event, values = window.Read()
if event == 'Submit':
name = values[0]
age = values[1]
sg.Popup('Your details', 'Name: '+name, 'Age: '+age)
elif event == 'Cancel':
break
window.Close()
上面的代码中,使用了一个while循环,以等待用户与窗口进行交互。在用户单击“提交”按钮时,代码使用sg.Popup()函数来显示用户在输入框中输入的信息。如果用户单击“取消”按钮,则在while循环中使用break操作来关闭程序窗口。
- 示例一:批量重命名文件
下面是一个示例,演示如何使用PySimpleGUI制作一个可以批量重命名文件的自动化办公小软件。
首先,需要定义GUI界面,允许用户输入文件夹路径和要添加的前缀。
import os
import PySimpleGUI as sg
sg.theme('DefaultNoMoreNagging')
layout = [[sg.Text('Folder'), sg.Input(key='-FOLDER-'), sg.FolderBrowse()],
[sg.Text('Prefix'), sg.Input(key='-PREFIX-')],
[sg.OK(), sg.Cancel()]]
window = sg.Window('File renamer', layout)
接下来,需要使用os模块获取文件列表,并使用os.rename()函数重命名每个文件。
import os
import PySimpleGUI as sg
sg.theme('DefaultNoMoreNagging')
layout = [[sg.Text('Folder'), sg.Input(key='-FOLDER-'), sg.FolderBrowse()],
[sg.Text('Prefix'), sg.Input(key='-PREFIX-')],
[sg.OK(), sg.Cancel()]]
window = sg.Window('File renamer', layout)
while True:
event, values = window.Read()
if event == 'OK':
folder = values['-FOLDER-']
prefix = values['-PREFIX-']
for filename in os.listdir(folder):
os.rename(os.path.join(folder, filename), os.path.join(folder, prefix+filename))
sg.Popup('File renaming completed')
elif event == 'Cancel':
break
window.Close()
上面的代码中,使用了一个for循环来处理每个文件名。使用os.path.join()函数将文件夹路径和文件名合并为一个完整的路径,然后使用os.rename()函数重命名文件。在重命名完成后,使用sg.Popup()函数显示弹出窗口,通知用户操作已完成。
- 示例二:转换多个图片格式
下面是另一个示例,演示如何使用PySimpleGUI制作一个可以批量转换多个图片格式的自动化办公小软件。
首先,需要定义GUI界面,并允许用户选择要转换的文件格式和目标文件格式。
from PIL import Image
import os
import PySimpleGUI as sg
sg.theme('DefaultNoMoreNagging')
layout = [[sg.Text('From format'), sg.Input(key='-FROM-')],
[sg.Text('To format'), sg.Input(key='-TO-')],
[sg.Text('Folder'), sg.Input(key='-FOLDER-'), sg.FolderBrowse()],
[sg.OK(), sg.Cancel()]]
window = sg.Window('Image format converter', layout)
然后,需要使用Pillow库中的Image模块打开每个文件,并使用save()方法将其保存成新的文件格式。
from PIL import Image
import os
import PySimpleGUI as sg
sg.theme('DefaultNoMoreNagging')
layout = [[sg.Text('From format'), sg.Input(key='-FROM-')],
[sg.Text('To format'), sg.Input(key='-TO-')],
[sg.Text('Folder'), sg.Input(key='-FOLDER-'), sg.FolderBrowse()],
[sg.OK(), sg.Cancel()]]
window = sg.Window('Image format converter', layout)
while True:
event, values = window.Read()
if event == 'OK':
folder = values['-FOLDER-']
from_format = values['-FROM-']
to_format = values['-TO-']
for filename in os.listdir(folder):
if filename.endswith(from_format):
with Image.open(os.path.join(folder, filename)) as im:
new_filename = os.path.splitext(filename)[0] + '.' + to_format
im.save(os.path.join(folder, new_filename))
sg.Popup('Conversion completed')
elif event == 'Cancel':
break
window.Close()
上面的代码中,使用了一个if条件语句来筛选文件名。如果文件名以所选格式结尾,则打开该文件并将其保存在新的文件格式中。使用os.path.splitext()函数将文件名和扩展名分开,然后组合新的文件名。在处理完每个文件后,使用sg.Popup()函数显示弹出窗口,通知用户操作已完成。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 库 PySimpleGUI 制作自动化办公小软件的方法 - Python技术站