Mostrando entradas con la etiqueta pyzenity. Mostrar todas las entradas
Mostrando entradas con la etiqueta pyzenity. Mostrar todas las entradas

domingo, 15 de febrero de 2015

Python: jugando con PyZenity (3era parte)

En esta ocasión seguimos usando la librería PyZenity. Ahora crearemos un sencillo menú con tres opciones:
  1. Información del sistema
  2. Espacio en los discos duros
  3. Ver directorio
Importaremos estas librerías:
  • os
  • platform
  • commands
  • PyZenity
Nos servirán para ejecutar comandos, obtener plataforma que se ocupa (en este caso se usa Linux), almacenar el resultado de comandos y para los componentes gráficos respectivamente.

Como va ser un script para sistemas Linux hacemos una función que identifique si se trata de un sistema con plataforma Linux:

def identifica():
  return platform.system() == 'Linux'


Para ejecutar un comando (sin necesidad de almacenar el resultado) usamos este método:

os.system('clear')#este comando limpia la pantalla

Ahora si queremos guardar el resultado de un comando usaremos esto:
status, output = commands.getstatusoutput("ls -l")

Para introducir datos de entrada:
entrada=GetText(contenido)

Para mostrar resultados:
InfoMessage('Mensaje')

El código completo:
import os,platform,commands
from PyZenity import *

def identifica():
  return platform.system() == 'Linux'

def menu():
  contenido="\tMenu\n1. Opcion 1[Informacion del sistema]\n2. Opcion 2[Espacio en los discos duros]\n3. Opcion 3[Ver el directorio]\nElije tu opcion (q para salir):"
  while True:
    entrada=GetText(contenido)
    try:
      numero=int(entrada)
      if numero == 1:
        status, output = commands.getstatusoutput("uname -a")
        InfoMessage(str(output))
      elif numero == 2:
        status, output = commands.getstatusoutput("df")
        InfoMessage(str(output))
      elif numero == 3:
        status, output = commands.getstatusoutput("ls -l")
        InfoMessage(str(output))
      else:
        ErrorMessage('Opcion incorrecta.\nIntenta de nuevo')
    except:
      if entrada == 'q':
        break
      Warning('Por favor solo numeros')


def main():
  if identifica():
    os.system('clear')
    try:
      menu()
    except ImportError:
      print "Debes tener instalada la libreria PyZenity"

  else:
    print "Este script solo funciona en plataformas Linux"

if __name__ == '__main__':
  main()



martes, 6 de enero de 2015

Python: jugando con PyZenity (2da parte)


Seguimos con los ejemplos de componentes PyZenity.


7. Uso de un componente tipo List. Nos puede servir para crear una lista de artículos, en este ejemplo usamos un tipo "radiolist".
from PyZenity import *

def preguntar():
    if Question('Deseas continuar?'):
        main()
    else:
        exit()


def main():
    lista=List(["Selecciona","Heroe","Nombre"], title="Elige tu heroe", boolstyle="radiolist", editable=False, select_col="ALL", sep='|', data=[["","Batman","Bruce Wayne"],["","Spiderman","Peter Parker"]])
    print "longitud:",len(lista)

    if len(lista)==2:
        InfoMessage('Elegiste:'+str(lista[1]))
        preguntar()


if __name__ == '__main__':
    main()


Los encabezados: Selecciona, Heroe, y Nombre.
Los valores: radiolist, nombre del héroe, nombre de pila

Ejecutando:

Nos mostrará un mensaje tipo "alert" con la opción seleccionada.




8. También podemos crear una lista con tipo "checklist".
from PyZenity import *

def preguntar():
    if Question('Deseas continuar?'):
        main()
    else:
        exit()


def main():
    lista=List(["Selecciona","Heroe","Nombre"], title="Elige tu heroe", boolstyle="checklist", editable=False, select_col="ALL", sep='|', data=[["","Batman","Bruce Wayne"],["","Spiderman","Peter Parker"]])
    print "longitud:",len(lista)

    if len(lista)==2:
        InfoMessage('Elegiste:'+str(lista[1]))
        preguntar()

    if len(lista)==4:
        InfoMessage('Elegiste:'+str(lista[1])+" - "+str(lista[3]))
        preguntar()


if __name__ == '__main__':
    main()






Nos mostrará la siguiente ventanita:





9. Ahora un ejemplo con Progress.
from PyZenity import *

def main():
    progreso=Progress(text='Cargando información ...',percentage=0,auto_close=False,pulsate=False)
    progreso(10)
    progreso(20)
    progreso(30)
    progreso(40)


if __name__ == '__main__':
    main()


Para el próximo post crearemos una aplicación más usando esta librería.

viernes, 2 de enero de 2015

Python: juego del disparejo

Nuevamente vamos a emplear la librería PyZenity. En este ejemplo crearemos el juego del disparejo.

Definición: Tres personas lanzan (cada uno) una moneda, si caen las tres monedas en ÁGUILA O SOL nadie gana. Gana quien tenga la moneda diferente de las otras dos.

Ejemplo.

Hugo | Paco | Luis    | Ganador
SOL        SOL  ÁGUILA    El ganador es Luis


Hugo | Paco    | Luis   | Ganador
ÁGUIL ÁGUILA ÁGUILA  No hay ganador, las monedas son iguales






from PyZenity import InfoMessage
import random


def main():
    ganador=""
    result="JUEGO DEL DISPAREJO\n\n*******************"
    moneda=["SOL","AGUILA"]#simulamos una moneda con dos caras: AGUILA y SOL
    hugo,paco,luis="","",""#definimos tres jugadores

    #obtenemos valores aleatorios
    hugo=moneda[int(random.randrange(0,2))]
    paco=moneda[int(random.randrange(0,2))]
    luis=moneda[int(random.randrange(0,2))]

    result+='\nTurno de Hugo:'+str(hugo)
    result+='\nTurno de Paco:'+str(paco)
    result+='\nTurno de Luis:'+str(luis)

#las condiciones del programa
    if hugo==luis and hugo==paco:
        ganador="Las tres monedas son iguales, No hay ganador"
    elif hugo!=luis and hugo!=paco:
        ganador="El ganador es Hugo"
    elif paco!=luis and paco!=hugo:
        ganador="El ganador es Paco"
    else:
        ganador="El ganador es Luis"

    result+='\n*******************\n'+str(ganador)
    InfoMessage(result)


if __name__ == '__main__':
    main()




Resultado:

Links
http://www.solveet.com/exercises/Juego-del-disparejo/306

miércoles, 31 de diciembre de 2014

Python: jugando con PyZenity


A continuación una serie de ejemplos muy básicos usando la librería PyZenity, ya antes había escrito algo sobre esta.  La documentación se encuentra en: http://brianramos.com/software/PyZenity/docs/

nota: Para realizar estos ejemplo se uso  Sublime Text y la terminal de comandos de Linux.

1. Un ejemplo sencillo para obtener la fecha del sistema:
try:
    import PyZenity
    fecha=PyZenity.GetDate('Por favor selecciona una fecha',selected=False)
    PyZenity.InfoMessage('Fecha seleccionada '+str(fecha))
except ImportError:
    print "necesitas instalar la librería PyZenity"




2. Supongamos quiero mostrar un mensaje de error del tipo 'alert' entonces escribiría algo así:

from PyZenity import ErrorMessage
try:
    import imaginario #no existe esta librería, provocará un error
except ImportError:
    ErrorMessage('No existe la librería: imaginario')




3. Si queremos seleccionar una carpeta de nuestro sistema ocuparemos GetDirectory:

from PyZenity import GetDirectory
from PyZenity import InfoMessage

dir=GetDirectory(multiple=False,selected=None,sep=None)
InfoMessage("seleccion: "+str(dir))




4. Ahora usamos GetFilename para obtener el nombre de un archivo:

from PyZenity import GetFilename
from PyZenity import InfoMessage

arch=GetFilename(multiple=True,sep='|')
InfoMessage("seleccion: "+str(arch))





5. Uso de Question e InfoMessage:
from PyZenity import Question
from PyZenity import InfoMessage

if Question('Tienes instalado Linux?'): #nos devolverá un booleano
    InfoMessage('Bienvenido')
else:
    InfoMessage('Deberias instalar Linux')



6. Uso de Notification, puede servirnos para crear mensajes de notificación.

from PyZenity import Notification

try:
    import imaginario
except ImportError:
    Notification(text='Ha ocurrido un error')



Son solo algunas cosas que se pueden hacer con PyZenity.

viernes, 14 de febrero de 2014

Python: Uso de PyZenity

¿Qué es PyZenity?
Es una librería creada por Brian Ramos que nos permite hacer uso de cuadros de diálogo Zenity.

¿Cómo puedo usar PyZenity?

  1. Descargar la última versión http://brianramos.com/software/PyZenity/PyZenity-0.1.7.tar.gz
  2. Desempaquetar
  3. Ir a la carpeta PyZenity
  4. Desde terminal teclear (como root): python setup.py install
  5. Entra al repl de Python tecleando: python 


Tendremos instalado PyZenity.


1. Una calculadora básica (solo funciona en sistemas Linux)

from PyZenity import InfoMessage
from PyZenity import Question
from PyZenity import ErrorMessage
from PyZenity import GetText
import os

x1, x2,res=0.0, 0.0, 0.0

def main():
os.system('clear')

menu='\t[ Menu ]\n1. Suma\n2. Resta\n3. Producto\n4. Division\n5. Salir'
opcion=GetText(text=menu, entry_text='', password=False)


if opcion == "1":
  cad="Suma"
elif opcion == "2":
cad="Resta"
elif opcion == "3":
cad="Producto"
elif opcion == "4":
cad="Division"
elif opcion == "5":
cad="Salir"
else:
cad="opcion invalida"


if cad == "opcion invalida":
ErrorMessage('Error, '+cad)
else:
InfoMessage('Introduciste: '+cad)

if cad=="Suma":
x1=float(GetText(text='Introduce un numero', entry_text='',password=False))
x2=float(GetText(text='Introduce otro numero', entry_text='',password=False))
res=x1+x2
InfoMessage('La suma obtenida es: '+str(res))
elif cad=="Resta":
x1=float(GetText(text='Introduce un numero', entry_text='',password=False))
x2=float(GetText(text='Introduce otro numero', entry_text='',password=False))
res=x1-x2
InfoMessage('La resta obtenida es: '+str(res))
elif cad=="Producto":
x1=float(GetText(text='Introduce un numero', entry_text='',password=False))
x2=float(GetText(text='Introduce otro numero', entry_text='',password=False))
res=x1*x2
InfoMessage('El producto obtenido es: '+str(res))
elif cad=="Division":
x1=float(GetText(text='Introduce un numero', entry_text='',password=False))
x2=float(GetText(text='Introduce otro numero', entry_text='',password=False))
res=x1/x2
InfoMessage('La division obtenida es: '+str(res))
else:
ErrorMessage('Error, '+cad)



if __name__ == '__main__':
main()










2. Crear una tabla
from PyZenity import InfoMessage
from PyZenity import List
from PyZenity import ErrorMessage
from PyZenity import GetText
import os
import sys
 
 
so,comando='',''
continuar=''
 
def lista():
return List(["Escoge","Autor","Lenguaje"], title="Selecciona un lenguaje", boolstyle="radiolist", editable=False, select_col="ALL", sep='|', data=[["","Guido","Python"],["","Gosling","Java"]])
    
def activa(c):
os.system(c)
#print lista()
res=lista()
print "Elegiste: "
print "Autor: ",res[0],", lenguaje: ",res[1]
 
continuar=GetText(text='Deseas continuar? [Si-> S,s , No-> N,n] ', entry_text='', password=False)
 
if continuar == "S" or continuar == "s":
main()
elif continuar == "N" or continuar == "n":
exit()
else:
exit()
 
 
 
def main():
so=sys.platform
if so=="linux2" or so=="darwin":
comando='clear'
else:
comando='cls'
 
activa(comando)
 
 
if __name__ == '__main__':
main()








Links
http://brianramos.com/?page_id=38
http://es.wikipedia.org/wiki/Zenity

¿Qué lenguaje de programación debes aprender en un mundo con IA?

Las herramientas de IA están matando, literalmente, a la programación. Cualquiera con un Github Copilot, DeepSeek, Chat GPT, etc. pu...

Etiquetas

Archivo del blog