Hoy traigo una librería que aún no está acabada, pero puede que interese a la gente que no le guste complicarse lo más mínimo con las interfaces, pero que aún así le interese hacer unas GUI para los script [ guiml.zip ].
La idea es simple, le pasas un pedazo de HTML a la "librería" y esta selecciona el Toolkit disponible (por ahora solo soporta Gtk y Qt4, cuando le heche el guante a algo que tenga tk instalado lo añado ) hace una GUI basandose en eso, por ejemplo, para
<title>Simple test</title>
<form action="test">
Decide <br>
<input type="submit" value="SI" name="Si"><input type="submit" value="NO" name="No">
Con Gtk:
Con Qt4:
No está completa y Qt4 es un peligro ( he visto cosas que jamás creeríais, SegFault en python ! ) pero parece que funciona relativamente bien
Copipasteo del archivo "Uso":
Uso:
Inicio:
Para comenzar hay que obtener un objeto "GUI", esto se hace llamando a
guiml.getGui(), adicionalmente se puede enviar una lista de interfaces,
en orden de preferencia, si no se especifica se seleccionará una de las
disponibles [ "gtk", "qt4", "tk" ] por defecto.
gui = guiml.getGui()
Para iniciar la GUI se utiliza como argumento un diccionario que
indica que funcion lanza cada "action" de los form's
(La función se manda sin parentesis)
Al iniciar se le manda la gui y un diccionario que trabaja parecido al
$_REQUEST['x'] de php:
w = guiml.guiml(gui,{"action":funcion})
#-----
Llamada a una pagina:
Para mostrar una pagina se llama a load y se manda como argumento
el archivo:
w.load(f)
-Se puede mandar un diccionario como segundo argumento que reemplaza
el value de botones y entradas de texto y src de imágenes, si el "name"
coincide con alguno del diccionario
Alternativamente se puede enviar una cadena de *ml, de esta forma:
w.load(None, {} ,'<title>Blablabla</title><form action="asd">...')
#-----
Cuando llega a una funcion:
Cuando llega a la funcion le manda un diccionario y el nombre del botón
pulsado, por ejemplo, si ejecutara una funcion llamada prueba(dic, btn)
(el argumento es necesario), se extraerian las variables asi:
def prueba( dic, btn ):
respuesta = dic['resp']
El nombre de las variables dentro del diccionario son los "name" de la
etiqueta en cuestión.
#-----
Notas:
[-] Aún no pilla texto formateado
Tags aceptados:
[+] Title <title>
[+] Form (sólo uno por ahora) <form>
[+] Line Break <br>
[+] Texto plano Blah!
[+] Input type = text <input>
[+] Input type = submit <input>
[+] Imagenes <img>
[+] Input type = reset <input>
[+] MetaTags en un "about" <meta>
Por hacer:
[+] Selects
[+] Checkbox y radio
Más imágenesGtk:
Qt4:
Hale, con root
Hace tiempo lei que queran hacer algo parecido a esto dentro de GTK. Es impresionante hacer GUIs as; termina siendo lo ms fcil del mundo :)
ResponderEliminarkenkeiras me vas a picar con pythooon :)
Cual prefieres de todos los creadores de GUI?
ResponderEliminar[pyQt,tkinter,GTK,wxpython,etc]
y si de por casualidad conoces una tool que facilite el codeado de GUI en python
@gaspar: siii, ven a python, tenemos galletas! :D
ResponderEliminar@lexel: no me llevo muy bien con las GUI, asi que el único que use es pyGTK, pero casi recomendaría Tkinter, es estándar y parece que es fácil de usar
en cuanto a algo que codee la GUI... tienes aqui algo. Si buscas algo serio, tienes Glade para pyGTK o (sino recuerdo mal) QtDesigner para Qt. Además creo que Anaconda hace de IDE para TKinter, hay donde elegir, pero no sabría recomendar uno concreto .