Python interfaz PDF

Title Python interfaz
Author Adrian Páez
Course tecnologia de sw
Institution Universidad de las Fuerzas Armadas de Ecuador
Pages 7
File Size 395.4 KB
File Type PDF
Total Downloads 63
Total Views 126

Summary

Interfaz python...


Description

Scripting con Python Guamán Jonathan, Páez Gonzalo Universidad de las fuerzas armadas ESPE Quito-Ecuador [email protected] [email protected] Resumen

Tkinter es el paquete gráfico basado en Tk que viene estándar con la mayoría de las compilaciones de Python. Pero Python también tiene ttk y Tix, las 3 son librerías basadas en TKinter las cuales nos permiten colocar en pantalla ciertos Widget los cuales pueden interactuar con el usuario, en sí, lo que hacen las 3 librerías es ofrecernos herramientas de fácil programación las cuales podamos colocar en una interfaz gráfica para que sean los intermediarios entre el lenguaje de la máquina con el del ser humano, todo esto, incluye botones, barras de despliegue de datos, cuadros de texto, cambios de color, etc. I. INTRODUCCIÓN El scripting generalmente se refiere a escribir pequeños programas que están diseñados para automatizar tareas simples. Python es adecuado para este tipo de tareas, principalmente porque tiene una sintaxis relativamente simple y es fácil de escribir. También es rápido escribir algo pequeño con él y probarlo. La interfaz gráfica del usuario también llamada como GUI, es un programa que realiza las veces de intermediario entre lenguaje de máquina y el usuario. “Un software que muestra de forma visual todas las acciones posibles en una plataforma, así como la información disponible, para que los usuarios puedan interactuar con mayor facilidad y sin necesidad de disponer de profundos conocimientos de informática”(NEO ATTACK, 2020).

Figure 1. Resultado final de la calculadora científica. ● Permitir operaciones con números decimales. ● Añadir un icono al archivo ejecutable de la aplicación.

1.1 Código Fuente from tkinter import * raiz=Tk() miFrame=Frame(raiz) miFrame.pack() operacion=""

resultado=0

II. DESARROLLO DE CONTENIDOS 1

Modificaciones al ejercicio propuesto. En la interfaz gráfica diseñada para la aplicación de simulación de una calculadora añadir: ● Un botón que permita borrar un valor numérico ingresado erróneamente. ● Visualizar por defecto el número cero análogamente a la función de la calculadora de un pc.

#Pantalla numeroPantalla=StringVar() pantalla=Entry(miFrame, textvariable=numeroPantalla) pantalla.grid(row=1, column=1, padx=10, pady=10, columnspan=4) pantalla.config(background="sky blue", fg="black", justify="right")

#PULSACIONES def numeroPulsado(num): global operacion if operacion!= "":

numeroPantalla.set(num) operacion="" else: numeroPantalla.set(numeroPantalla.get()+num) def suma(num): global operacion global resultado global op resultado=float(num) op = "suma" operacion="suma" numeroPantalla.set(resultado) def resta(num): global operacion global resultado global op resultado=float(num) operacion="resta" op="resta"

def numeroe(num): global operacion global resultado numeroPantalla.set(0) numeroPulsado.set(num) def borrar(): global operador operador="" numeroPantalla.set(0) resultado=0 def multiplicacion(num): global operacion global resultado global op resultado=float(num) operacion="multiplicacion" op="multiplicacion" def division(num): global operacion global resultado global op resultado= float(num) operacion="division" op="division" def numeroe(num): global operacion

global resultado num=2.71828 resultado=2.71828 operacion="numeroe" numeroPantalla.set(resultado) def el_resultado(): global resultado global operacion global op print(op) if op=="suma": numeroPantalla.set(resultado+float(numeroPantalla. get())) if op=="resta": numeroPantalla.set(resultadofloat(numeroPantalla.get())) if op=="multiplicacion": numeroPantalla.set(resultado*float(numeroPantalla. get())) if op=="division": numeroPantalla.set(resultado/float(numeroPantalla.g et()))

def borrar(): global operador operador="" numeroPantalla.set(0) def CE(): borrar() resultado=0

borrar() #Fila 1 botonE=Button(miFrame, text="e",width=3, command=lambda:numeroe("2.7182")) botonE.grid(row=2,column=1) botonCE=Button(miFrame, text="CE",width=3, command=lambda: CE()) botonCE.grid(row=2,column=2) botonborrar=Button(miFrame, text="C",width=3, command=lambda:borrar()) botonborrar.grid(row=2, column=4) #Fila 2 boton7=Button(miFrame, text="7", width=3,command=lambda:numeroPulsado("7"))

boton7.grid(row=3, column=1) boton8=Button(miFrame, text="8",width=3,command=lambda:numeroPulsado ("8")) boton8.grid(row=3, column=2) boton9=Button(miFrame, text="9", width=3,command=lambda:numeroPulsado("9")) boton9.grid(row=3, column=3) botonDiv=Button(miFrame, text="/", width=3,command=lambda:division(numeroPantalla .get())) botonDiv.grid(row=3, column=4)

botonIgual.grid(row=6, column=3) botonSum=Button(miFrame, text="+", width=3, command=lambda:suma(numeroPantalla.get())) botonSum.grid(row=6, column=4) raiz.mainloop() 1.2 CAPTURAS

#Fila 3 boton4=Button(miFrame, text="4", width=3,command=lambda:numeroPulsado("4")) boton4.grid(row=4, column=1) boton5=Button(miFrame, text="5",width=3,command=lambda:numeroPulsado ("5")) boton5.grid(row=4, column=2) boton6=Button(miFrame, text="6", width=3,command=lambda:numeroPulsado("6")) boton6.grid(row=4, column=3) botonMult=Button(miFrame, text="x", width=3,command=lambda:multiplicacion(numeroP antalla.get())) botonMult.grid(row=4, column=4)

#Fila 4 boton1=Button(miFrame, text="1", width=3,command=lambda:numeroPulsado("1")) boton1.grid(row=5, column=1) boton2=Button(miFrame, text="2",width=3,command=lambda:numeroPulsado ("2")) boton2.grid(row=5, column=2) boton3=Button(miFrame, text="3", width=3,command=lambda:numeroPulsado("3")) boton3.grid(row=5, column=3) botonRest=Button(miFrame, text="-", width=3, command=lambda:resta(numeroPantalla.get())) botonRest.grid(row=5, column=4) #Fila 5 boton0=Button(miFrame, text="0", width=3,command=lambda:numeroPulsado("0")) boton0.grid(row=6, column=1) botonComma=Button(miFrame, text=",",width=3,command=lambda:numeroPulsado (".")) botonComma.grid(row=6, column=2) botonIgual=Button(miFrame, text="=", width=3, command=lambda:el_resultado())

Figure 2. Calculadora

Figure 3. Digitalización de números decimales

2

Creación y diseño de una aplicación y su interfaz gráfica. Usted diseñará una aplicación que simule un cajero automático, el cual consta de tres ventanas principales: ● Ventana donde se digitará el servicio a realizar. En esta venta existirán los siguientes servicios: ● Retiro. ● Depósitos. ● Consulta de saldos. ● Pago de servicios básicos. ● Actualización de datos. ● Queja existente por el usuario. ● Ventana donde el usuario ingresa su ID y su contraseña.

Esta ventana contiene los siguientes ítems: ● Cuadros de texto donde el usuario ingresa su ID y su contraseña. ● Botones para borrar y seleccionar texto. ● Botones de regreso a la ventana anterior o de continuar a la siguiente ventana. ● Ventana donde el usuario realiza el servicio. En esta ventana el diseñador usa su creatividad y de acuerdo con el servicio seleccionado por el usuario, se desplegarán distintas ventanas, cabe recalcar que las ventanas de cada servicio son diferentes. NOTA 1: Las ventanas se desplegarán de acuerdo con lo que el usuario seleccione en cada proceso. NOTA 2: La interfaz deberá ser entregada a su tutor como una aplicación ejecutable, esto incluye icono de aplicación. III.CONCLUSIONES El propósito de esta sección es resumir los principales resultados discutidos a lo largo del paper. Recuerde manejar las conclusiones como enunciados cortos fundamentados en la teoría y los objetivos planteados. Esta sección no tiene requisitos especiales de formato. 2.1 CÓDIGO FUENTE from tkinter import * from tkinter import messagebox def validar(): if entrada1.get()=="usuario": abrirventana1() else: messagebox.showwarning(" INCORRECTA")

datos=Button(raiz, text="ACTUALIZACION DE DATOS",bg="blue",fg="white",command=datosusu ario) datos.pack(pady=20, ipady=20,ipadx=20) quejas=Button(raiz,text="QUEJAS EXISTENTES", bg="blue",fg="white",command=quejasusuario ) quejas.pack(pady=20,ipady=20, ipadx=20) def cerrarventana(): principal.destroy() def retirar(): r=Toplevel() r.geometry('400x300') r.configure(bg='black') te1=Label(r,text="Retiro",bg='yellow',fg='white') te1.pack(padx=10,pady=10,fill=X) te2=Label(r,text="cantidad a retirar : ",bg='yellow',fg='white') te2.pack(padx=10,pady=10,fill=X) entradar=Entry(r) entradar.pack(padx=10,pady=10,fill=X) buttonr=Button(r,text='Enviar',command=r.destroy) buttonr.pack(side=TOP)

CONTRASEÑA

def abrirventana1(): principal.withdraw() raiz=Toplevel() raiz.geometry("500x700") raiz.config(bg="violet") retiro=Button(raiz, text="RETIRO",bg="blue", fg="white",command=retirar) retiro.pack( pady=10,ipadx=50, ipady=20) deposito=Button(raiz, text="DEPOSITO",bg="blue", fg="white",command=depositar) deposito.pack(pady=30, ipadx=40, ipady=20) consultasaldo=Button(raiz, text="CONSULTA DE SALDO",bg="blue",fg="white",command=consultad esaldo) consultasaldo.pack(pady=20,ipady=20, ipadx=20) servicios=Button(raiz,text="PAGO DE SERVICIOS",bg="blue",fg="white",command=servi ciosbasicos) servicios.pack(pady=20,ipady=20, ipadx=20)

def depositar(): p=Toplevel() p.geometry('400x300') p.configure(background='black') te1=Label(p,text="Depositos",bg='blue',fg='white') te1.pack(padx=10,pady=10,fill=X) te2=Label(p,text="Ingrese la cantidad a depositar",bg='blue',fg='white') te2.pack(padx=10,pady=10,fill=X) entradar=Entry(p) entradar.pack(padx=10,pady=10,fill=X) buttonr=Button(p,text='Enviar',command=p.destroy) buttonr.pack(side=TOP) def consultadesaldo(): o=Toplevel() o.geometry('400x300') o.configure(background='black') te1=Label(o,text="Consulta saldo",bg='blue',fg='white') te1.pack(padx=10,pady=10,fill=X) te2=Label(o,text="saldo actual de:",bg='blue',fg='white') te2.pack(padx=10,pady=10,fill=X)

de es

te2=Label(o,text="No tiene dinero en su cuenta. ",bg='blue',fg='white') te2.pack(padx=10,pady=10,fill=X)

e1=Label(win,text="QUEJAS USUARIO",bg='blue',fg="white") entra1=Entry(win)

buttonr=Button(o,text='Aceptar',command=o.destroy ) buttonr.pack(side=TOP)

principal=Tk() principal.title("CAJERO AUTOMÁTICO") principal.geometry("300x300") principal.config(bg="black") e=Label(principal,text="INGRESE SU ID",bg="blue",fg="white") e.pack(pady=20, fill=X) txt1=Entry(principal) txt1.pack(fill=X,padx=5,pady=5,ipadx=5,ipady=5) i=Label(principal,text="INGRESE LA CONTRASEÑA",bg="blue",fg="white") i.pack(pady=20,fill=X) entrada1=Entry(principal) entrada1.pack(fill=X,padx=5,pady=5,ipadx=5,ipady =5) contraseñaa=Button(principal,text="Validar contraseña",fg="blue",command=validar) contraseñaa.pack(side=TOP)

def serviciosbasicos(): q=Toplevel() q.geometry('400x300') q.configure(background='green') te1=Label(q,text="Pago de servicios basicos:",bg='green',fg='black') te1.pack(padx=10,pady=10,fill=X) buttona=Button(q,text='Agua ') buttona.pack(side=TOP) buttonl=Button(q,text='Luz eléctrica ') buttonl.pack(side=TOP) buttont=Button(q,text='Telefono convencional ') buttont.pack(side=TOP) buttoni=Button(q,text='Internet fibra óptica ') buttoni.pack(side=TOP) buttonr=Button(q,text='Enviar',command=q.destroy) buttonr.pack(pady=50,side=TOP)

principal.mainloop() 2.2 CAPTURAS

def datosusuario(): u=Toplevel() u.geometry('400x300') u.configure(background='black') te1=Label(u,text="Actualizar Datos",bg='blue',fg='white') te1.pack(padx=10,pady=10,fill=tk.X) etiquetau3=Label(u,text="Ingrese su usuario datos() :",bg='blue',fg="white") etiquetau3.pack(padx=10,pady=10,fill=tk.X) entradau=Entry(u) entradau.pack(padx=10,pady=10,fill=X) etiquetau4=Label(u,text="Ingrese su clave:",bg='blue',fg="white") etiquetau4.pack(padx=10,pady=10,fill=X) entradau2=Entry(u) entradau2.pack(padx=10,pady=10,fill=X) bottonac=Button(u,text='verificar',command=u.destr oy) bottonac.pack(side=TOP) def quejasusuario(): win=Toplevel() win.geometry('400x300') win.configure(background='black')

Figure 4. Cajero automático.

DEL

Figure 7. Opción de retiro del cajero automático.

Figure 5. Error en la contraseña.

Figura 8. Opción de depósito del cajero automático.

Figure 6. Menú del cajero automático. Figure 9. Opción de consulta de saldo del cajero automático.

Figure 10.. Opción de servicios básicos del cajero automático. IV.CONCLUSIONES Tkinder es un módulo que se encuentra dentro de Python y se debe importar con: from Tkinter import * , su funcionamiento es estructurado lo que nos permite crear widgets, ventanas, controladores, etc. Es un gran avance para nosotros como estudiantes crear programaciones donde nuestro programa tenga una mejor recepción visual para el usuario y a la ves este se familiarice de una mejor manera con nuestro programa. V.RECOMENDACIONES Para importar el logo de nuestro programa debemos cambiar nuestra imagen a formato icono esto es muy importante por que si no el programa nos detecta como error. Una de mis recomendaciones también es realizar la programación de forma ordenada e ingresando etiquetas aunque parezca algo básico es de gran ayuda al momento de detectar errores porque a veces el programa no nos corre por errores menores y nos atascamos en esos errores. REFERENCIAS [1]. Downey, A.B. (2008). How to Think Like a Computer Scientist. Learning with Python, Green Tea Press. [2]. Finlay, J. (2006). PyGTK 2.0 Tutorial, Version 2.5. [documento en línea]. http://www.pygtk.org/pygtk2tutorial/index.html [consultado: 3 de octubre de2012]. [3]. González Duque, R. Python para todos [documento en línea]. http://mundogeek.net/tutorial-python/ [consultado: 2 de octubre de 2012]...


Similar Free PDFs