Aplicación Pytnon con GUI votaciones
Enviado por jeison71 • 17 de Octubre de 2023 • Trabajo • 1.056 Palabras (5 Páginas) • 62 Visitas
Fundación Universitaria del Área Andina
Desarrollo
Para realizar la aplicación vamos a codificar utilizando el lenguaje de programación Python, se utilizará vscode como editor de texto, además debemos incluir algunas librerías que nos ayudaran a alcanzar el objetivo planteado, estas son :
- Tkinter: es el paquete más utilizado para crear interfaces gráficas en Python. Es una capa orientada a objetos basada en Tcl (sencillo y versátil lenguaje de programación open-source) y Tk (la herramienta GUI estándar para Tcl)
- Matplotlib: es una librería de Python especializada en la creación de gráficos en dos dimensiones. Permite crear y personalizar los tipos de gráficos más comunes, entre ellos: Diagramas de barras. Histograma.
- PIL: Python Imaging Library (PIL) es una librería gratuita que permite la edición de imágenes directamente desde Python. Soporta una variedad de formatos, incluidos los más utilizados como GIF, JPEG y PNG. Una gran parte del código está escrito en C, por cuestiones de rendimiento.
Se debe construir un formulario que invite a las personas a realizar una elección; la pantalla cuenta con 2 secciones, 1 donde se muestran los candidatos y se hace la elección y otra donde se muestran los resultados.
Para facilitar la identificación del candidato, además del nombre, le mostramos la foto de este.
Para capturar la elección hecha por el usuario, dispondremos de un control (botón) debajo de la foto de cada candidato. Cada que se presiona el botón correspondiente a cada candidato cuenta como un (1) voto, y este si irá acumulando para finalmente mostrar los resultados.
Para ver los resultados dispondremos de un botón, el cual al momento de presionarlos nos muestra los resultados de la elección en formato de grafica y en una tabla en formato texto.
Código de Programación
#libreria para formulario GUI
import tkinter
from tkinter import *
from tkinter import ttk
#libreria para redimensionar imagenes
from PIL import Image, ImageTk
#librerias para graficar datos
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
#funciones
#def contarVotos(candidato: int, votosCandidato1):
def contarVotos1():
global votosCandidato1
votosCandidato1 +=1
def contarVotos2():
global votosCandidato2
votosCandidato2 +=1
def contarVotos3():
global votosCandidato3
votosCandidato3 +=1
#funcion que se encarga de mostrar los resultados graficamente
def graficarDatos(frame):
fig, axs = plt.subplots(dpi=80, figsize=(5,4))
array_votos=[votosCandidato1,votosCandidato2,votosCandidato3]
array_colores = ['blue','magenta','green']
axs.pie(array_votos, colors = array_colores, labels = array_candidatos, autopct=("%1.f%%"))
axs.set_title('Resultado Eleccion')
canvas = FigureCanvasTkAgg(fig, master= frame)
canvas.draw()
canvas.get_tk_widget().grid(row=1, column=0)
tabularDatos(frame, array_votos)
for widget in frame.winfo_children():
widget.grid_configure(padx=10, pady=5)
#funcion que se encarga de mostrar los resultados en formato texto
def tabularDatos(frame, array_votos):
table = ttk.Treeview(frame, columns = ('candidato','votos'), show = 'headings')
table.heading('candidato', text = 'Candidato')
table.heading('votos', text = 'Votos')
table.grid(row=1, column= 1 )
posicion = 0
for i in array_candidatos:
#print(i)
candidato = i
votos = array_votos[posicion]
posicion +=1
...