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:
- 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.
- 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
- La tercera línea tiene los parámetros –text. Esto simplemente agrega un encabezado al formulario.
- La cuarta y quinta línea especifica el campo de entrada y el campo será para el nombre y apellido respectivamente.
- 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
- 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.
Después de ingresar algunos datos, su archivo csv debería verse así.
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