Siga + estrella, aprenda nuevas habilidades de Python todos los días
Desde Internet , intrusión y borrado
Python juega un papel importante en la operación y el mantenimiento y la automatización de la oficina. PySimpleGUI es un excelente módulo auxiliar de automatización que facilita la automatización de las tareas diarias.
1. Instalación PySimpleGUI
Ingrese: pip install pysimplegui en la línea de comando/terminal, espere a que se complete la instalación, ingrese al entorno de Python, ingrese import PySimpleGUI y presione Enter para confirmar que la instalación se realizó correctamente.
2. PySimpleGUI crea una interfaz emergente simple
2.1 Dos patrones de diseño de interfaz
(1) Ventana de un disparo
-
Similar a una ventana emergente, aparece una vez
-
A menudo se utiliza para solicitar información, recopilar información
(2) Ventana persistente
-
Se muestra continuamente a menos que el usuario lo apague manualmente
-
A menudo se utiliza como la interfaz principal del software.
2.2 Crear una ventana emergente
La biblioteca predeterminada en el sitio web oficial se abrevia como sg Se recomienda mantenerla uniforme cuando se usa, y también se usa sg.
Tipo de ventana emergente: (la primera y la segunda son iguales)
-
sg.popup('¡Atención!')
-
sg.popup_ok('ventana emergente predeterminada')
-
sg.popup_yes_no('ventana emergente con botones Sí y No')
-
sg.popup_cancel('Ventana emergente con botón cancelar')
-
sg.popup_ok_cancel('Ventana emergente con botones Aceptar y cancelar')
-
sg.popup_error('ventana emergente con botón rojo de error')
-
sg.popup_auto_close('Una ventana emergente que se cierra automáticamente después de unos segundos')
Después de la última ejecución, el programa se cerrará automáticamente en aproximadamente 2 s. Además de las funciones predeterminadas simples anteriores, también puede configurar parámetros manualmente. Los parámetros relevantes son los siguientes
Por ejemplo, configurar una ventana pequeña personalizada para agregar parámetros relacionados
sg.popup(
'这是弹窗',
title='Hello',
button_color=('#A81B0C', '#FFFFFF'),
background_color='#F47264',
line_width=2,
custom_text=' 好的 '
)
Resultado de salida: (El primer parámetro es la información que se mostrará, que puede ser una o varias cadenas. Cuando hay varias cadenas, la línea predeterminada se rompe. Si es una sola cadena, puede especificar el ancho de cada línea a través de linea con)
Cuando el primer parámetro son varias cadenas, se muestra el ajuste de línea automático (porque el largo y el ancho del formulario automático son pequeños, no se ve el título, pero no significa que no se muestre, como se puede ver en la siguiente ejemplo)
2.3 Ventana emergente de contenido de texto
Usando el método popup_scrolled(), agregue el contenido que se mostrará entre paréntesis
text = '''大家好,
我们一起来学习PySimpleGUI制作简单的图形用户界面。'''
sg.popup_scrolled(text,title='Hello')
El resultado es: (el título aquí se muestra normalmente)
Esta ventana emergente de contenido de texto también tiene parámetros de configuración relacionados, que se pueden configurar según sus propias necesidades. Los parámetros son los siguientes: (tenga en cuenta que los parámetros de la ventana emergente anterior también se pueden usar en este tipo de ventana emergente). ventana arriba, como el título que se acaba de usar)
2.4 Obtener la ventana emergente ingresada por el usuario
Usando el método popup_get_text(), el contenido de los corchetes es algo similar al mensaje en la instrucción input(), recordando al usuario que ingrese
text1 = sg.popup_get_text('请输入文字1')
print(text1)
text2 = sg.popup_get_text('请输入文字2')
print(text2)
El resultado de la salida es: (Cuando hace clic en Aceptar, la salida de la consola obtendrá la entrada de texto del usuario. Si hace clic en Cancelar, la salida será Ninguna. Aquí, la entrada de comando emergente del usuario se ejecuta dos veces. Después la primera entrada, haga clic en Aceptar automáticamente aparecerá una segunda ventana)
Este tipo de ventana emergente también tiene sus propios parámetros específicos para la selección. Por ejemplo, dado que se realiza la operación de entrada, a veces cuando ingresa la contraseña, no quiere que otros la vean. Puede usar el método de visualización de entrada, como sigue
Prueba para ocultar la entrada de contraseña, puede aprovechar directamente la situación para ingresar la contraseña ingresada por el usuario en forma de ventana emergente
2.5 Ventana emergente de selección de archivos
Use directamente el método sg.popup_get_file(), y el contenido entre paréntesis también es el indicador de entrada
Después de seleccionar, la dirección detallada se mostrará directamente en el cuadro de entrada, de la siguiente manera
Luego, la ventana emergente de esta clase también tiene su propia configuración de parámetro de atributo única, como se muestra a continuación. Casi todos los parámetros que contiene son parámetros de uso muy común, puede probarlos usted mismo.
El sufijo predeterminado, este parámetro también se usa comúnmente. Por ejemplo, cuando hace clic en Guardar como en sublime, es un archivo py. Al nombrar el archivo, solo necesita generar el nombre del archivo y el sufijo se agrega automáticamente .
2.6 Ventana de selección de carpetas
Usando el método sg.popup_get_folder(), el contenido entre paréntesis también es el indicador de entrada. Después de ejecutar el programa, aparecerá una ventana para seleccionar un archivo y la ruta de la carpeta se agregará a la entrada después de la selección del mouse.
2.7 Ventana emergente de la barra de progreso
Use el método sg.one_line_progress_meter() e ingrese la configuración de parámetros relevante entre paréntesis
for i in range(1000):
sg.one_line_progress_meter(
'进度条',
i + 1,
1000,
'该进度条key',
'这是一个进度条'
)
La salida es: (la carga dinámica se realizará hasta que alcance el 100%)
Por supuesto, este tipo de ventana emergente también tiene su propia configuración de parámetros única, como se muestra a continuación. Por ejemplo, las configuraciones comunes son vertical y horizontal, los límites superior e inferior de la barra de desplazamiento, etc.
Por ejemplo, pruebe la salida combinada de diferentes parámetros
for i in range(1, 1000):
sg.one_line_progress_meter(
'进度条',
i + 1,
1000,
'该进度条key',
'这是一个进度条',
orientation='h',
bar_color=('#F47264', '#FFFFFF')
)
La salida es:
3 Crear un software de compresión simple
3.1 Requisitos funcionales
-
Después de que se ejecuta el software, una ventana emergente le pide al usuario que seleccione una carpeta
-
Después de que el usuario seleccione, aparecerá una ventana emergente para que el usuario elija la ubicación y el nombre del paquete comprimido.
-
Una vez completada la entrada del usuario, todos los archivos de la carpeta se comprimen y empaquetan
-
Una vez completada la compresión, aparecerá una ventana para indicarle al usuario el tamaño del paquete comprimido.
3.2 Desmontaje funcional
(1) Después de que se ejecuta el software, una ventana emergente le pide al usuario que seleccione una carpeta
-
popup_get_folder()
(2) Después de que el usuario seleccione, aparecerá una ventana emergente para que el usuario elija la ubicación y el nombre del paquete comprimido.
-
popup_get_file()
-
save_as=Verdadero
-
extensión_predeterminada = 'zip'
(3) Una vez completada la entrada del usuario, todos los archivos de la carpeta se comprimen y empaquetan
-
módulo de archivo comprimido
(4) Una vez completada la compresión, aparecerá una ventana para indicarle al usuario el tamaño del paquete comprimido.
-
os.stat() lee la información del archivo
-
popup() datos de visualización de ventana emergente
3.3 Todo el código
Código de referencia: (principalmente los detalles, para la configuración de la ruta de compresión, debe manejarlo; de lo contrario, habrá muchos niveles de carpetas innecesarias en la descompresión final)
import PySimpleGUI as sg
import zipfile
import os
folder = sg.popup_get_folder('请选择要压缩的文件夹')
zip_path = sg.popup_get_file(
'请选择要保存的压缩包位置',
save_as=True,
default_extension='zip',
file_types=(('压缩包', '.zip'), )
)
with zipfile.ZipFile(zip_path, 'w') as zipobj:
for file in os.scandir(folder):
zipobj.write(file.path, file.path.replace(folder, '.'))
zip_size = os.stat(zip_path).st_size // 1024
sg.popup(f'压缩包体积大小为:{zip_size} KB')
Los resultados de salida se demuestran de la siguiente manera: (perfecto, flores dispersas✿✿ヽ(°▽°)ノ✿
Mantenga presionado o escanee el código QR a continuación para obtener cursos abiertos gratuitos de Python y cientos de gigabytes de materiales de aprendizaje empaquetados por los grandes , incluidos, entre otros, libros electrónicos de Python, tutoriales, pedidos de proyectos, código fuente, software descifrado, etc.
▲ Escanea el código QR - obténlo gratis
Lectura recomendada
¡Rompiendo el récord mundial! ¡Barrido automático de minas con Python! ¡Artefacto! ¡Un marco de trabajo de rastreo eficiente de Python que es más fácil de usar que las solicitudes! ¡Ocho esquemas para implementar tareas cronometradas en Python! Python hace una barra de progreso, hay tantos métodos