GUI's en python con [ GTK | QT4 ] y [XML | HTML... ]

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 Simple test

Decide
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, {} ,'Blablabla...') #----- 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                     [+] 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 <footer> <p>untagged</p> </footer> <div class="comments"></div> </article> <a href="/blog/2011/la-curva-del-dragon-con-logo//" class="page floatright"> La curva del dragón con Logo » </a> <a href="/blog/2011/el-juego-de-la-vida-con-processing-java//" class="page floatleft"> « El juego de la vida con Processing [ Java ] </a> </div> </div> </div> </body> </html>