Usando Zenity con Python

Bueno, no, este no es otro tutorial de Tkinter. En su lugar, usaremos Zenity para crear la GUI. ¿Confundido? Bueno, estoy aquí para el rescate. Zenity es un software gratuito y un programa multiplataforma que permite la ejecución de cuadros de diálogo GTK en línea de comandos y scripts de shell. Zenity solo está disponible en Linux. Lo siento, usuarios de Windows, este no es para ti. En su lugar, puede usar python-zenity , pero no lo cubriremos aquí.

Entonces empecemos. Primero, necesita tener Zenity instalado en su sistema. Para hacerlo, simplemente abra su terminal y escriba lo siguiente en él 

sudo apt-get update -y
sudo apt-get install -y zenity

Ahora que ha instalado Zenity, comencemos a crear secuencias de comandos. Primero, cree un nuevo directorio del proyecto y luego dentro del directorio del proyecto, cree un nuevo archivo llamado run.sh y agregue el siguiente script dentro de él. No se preocupe, proporcionaré un recorrido detallado de todo el código.

#!/bin/sh

zenity --forms --title="Contacts" \
   --text="New Contact" \
   --add-entry="First Name" \
   --add-entry="Last Name" \
   --add-entry="Phone" > data.txt
#optional: continue adding data to the existing data.txt file
#   --add-entry="Phone" >> data.txt

python3 contacts.py

Tutorial:

  1. La primera línea es la línea shebang. El shebang es una secuencia de caracteres especial en un archivo de secuencia de comandos que especifica a qué programa se debe llamar para ejecutar la secuencia de comandos. El shebang siempre está en la primera línea del archivo y está compuesto por los caracteres #! seguido de la ruta al programa intérprete.
  2. La siguiente línea es donde se llama Zenity. El atributo –forms define que la GUI será de un formulario. –título especifica el título de la ventana. \ es separador de línea. El separador de línea se usa porque Zenity quiere que todo se escriba en una sola línea, pero lo estamos haciendo de varias líneas para que nuestro guión se vea limpio. es opcional
  3. La tercera línea tiene los parámetros –text. Esto simplemente agrega un encabezado al formulario.
  4. La cuarta y quinta línea especifica el campo de entrada y el campo será para el nombre y apellido respectivamente.
  5. La sexta línea también es un campo de entrada, pero al final nota > data.txt Entonces, este es un comando bash para dirigir la salida al archivo data.txt
  6. La séptima línea llama al script de python que veremos en un momento.

Ahora, vayamos al script de python. No es necesario instalar ningún paquete adicional. Trabajaremos solo con los módulos incorporados. Entonces, vayamos a la codificación.

Python3

# import the modules
import os, csv
 
def write(first, last, phone):
 
    # checks if the csv file already exists or not
    if os.path.isfile('data.csv'):
        with open('data.csv', 'a') as file:
 
            # if it exists then appending the rows to it
            writer = csv.writer(file)
 
            # writing the rows
            writer.writerow([first, last, phone])
    else:
 
        # column names
        header = ['First Name', 'Last Name', 'Phone']
 
        # creating new file in write (w) mode
        with open('data.csv', 'w') as file:
 
            # initializing writer
            writer = csv.DictWriter(file, fieldnames = header)
 
            # writing the column header
            writer.writeheader()
 
            # writing the new entry
            writer.writerow({
                'First Name' : first,
                'Last Name' : last,
                'Phone' : phone})
 
# driver function
if __name__ == "__main__":
 
    # reads the data from txt file
    # removes new line and split it with '|' delimiter
    data = open('data.txt').readline().strip().split('|')
 
    # unziping the list to individual variables
    first_name, last_name, phone = data
 
    # calling write function
    write(first_name, last_name, phone)
 
    # removes the data.txt (optional)
    os.remove('data.txt')

Entonces, lo que esto hace básicamente es leer los datos del archivo y luego escribirlos en un archivo csv. Luego puede ver el archivo csv usando cualquier visor de hojas de cálculo.

Ahora, ya está todo listo. Ahora, para ejecutar todo, simplemente abra su terminal dentro de la carpeta del proyecto y escriba ./run.sh y su GUI debería abrirse. Complete los detalles y haga clic en Aceptar y sus datos deben escribirse en el archivo data.csv . Su ventana de interfaz gráfica de usuario debería tener un aspecto similar a este.

Zenity GUI

Después de ingresar algunos datos, su archivo csv debería verse así.

CSV file

Zenity puede ser bastante útil para crear una GUI simple.
 

Publicación traducida automáticamente

Artículo escrito por debdutgoswami y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *