Si alguien ha intentado programar un script que use pyGTK lanzándolo en un hilo aparte se habrá dado cuenta de que bloquea a todo el proceso, lo que es bastante molesto. La solución es hacer esto desde ese hilo antes de levantar la interfaz:
gtk.gdk.threads_init()
Hay más sobre hilos y pyGTK ( esto en concreto no ) en: http://unpythonic.blogspot.com/2007/08/using-threads-in-pygtk.html
Saludos
Mostrando entradas con la etiqueta gtk. Mostrar todas las entradas
Mostrando entradas con la etiqueta gtk. Mostrar todas las entradas
viernes, 18 de febrero de 2011
Como evitar que un hilo de pyGTK bloquee a los demás [ tip ]
jueves, 13 de enero de 2011
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
<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:
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:
miércoles, 28 de julio de 2010
Una ronda de bash ( y II )
[La primera parte] (La división va porque se hace incómodo editar el HTML para meter los spoilers con posts largos... si, lo se, soy un vago)
Nota: por alguna razón no se muestran los spoilers si se ven desde la portada, entrad en el post y debería ir.
Los siguientes códigos usan /proc/acpi/ para mostrar la temperatura y Zenity o KDialog para mostrarlo por una GUI
El primero es la base, muestra simplemente las temperaturas por pantalla [temp.sh]:
./temp.sh [-c]
El -c para que también se muestre el símbolo de la medida (¿grados?)
Este es con Zenity, es decir, con Gtk [ztemp.sh]
./ztemp.sh
#!/bin/bash
# Escrito por kenkeiras
back=$PWD
cd /proc/acpi/thermal_zone/
tmpList=""
for i in *; do
e=`cat $i/temperature`
e=${e:`expr length "$e"`-4:3}
tmpList="$tmpList $i $e"
done
cd $back
zenity --list --text "" --title "ZenTemp" \
--column "Dispositivo" --column "Temperatura" $tmpList
Visto esto ya no parece tan dificil programar GUI's ^^
Y con KDialog (Qt/Kde) [ktemp.sh]:
./ktemp.sh
#!/bin/bash
# Escrito por kenkeiras
back=$PWD
dump=kdetempdump
cd /proc/acpi/thermal_zone/
tmpVar=""
for i in *; do
e=`cat $i/temperature`
e=${e:`expr length "$e"`-4:3}
tmpVar=$tmpVar"$i: $e\n"
done
cd $back
echo -en $tmpVar > $dump
kdialog --title "KdeTemp" --textbox $dump
rm -f $dump
Y eso es todo, hasta otra
ps: De nuevo todo bajo la WTFPL, claro
Nota: por alguna razón no se muestran los spoilers si se ven desde la portada, entrad en el post y debería ir.
Los siguientes códigos usan /proc/acpi/ para mostrar la temperatura y Zenity o KDialog para mostrarlo por una GUI
El primero es la base, muestra simplemente las temperaturas por pantalla [temp.sh]:
./temp.sh [-c]
El -c para que también se muestre el símbolo de la medida (¿grados?)
Este es con Zenity, es decir, con Gtk [ztemp.sh]
./ztemp.sh
#!/bin/bash
# Escrito por kenkeiras
back=$PWD
cd /proc/acpi/thermal_zone/
tmpList=""
for i in *; do
e=`cat $i/temperature`
e=${e:`expr length "$e"`-4:3}
tmpList="$tmpList $i $e"
done
cd $back
zenity --list --text "" --title "ZenTemp" \
--column "Dispositivo" --column "Temperatura" $tmpList
Visto esto ya no parece tan dificil programar GUI's ^^
Y con KDialog (Qt/Kde) [ktemp.sh]:
./ktemp.sh
#!/bin/bash
# Escrito por kenkeiras
back=$PWD
dump=kdetempdump
cd /proc/acpi/thermal_zone/
tmpVar=""
for i in *; do
e=`cat $i/temperature`
e=${e:`expr length "$e"`-4:3}
tmpVar=$tmpVar"$i: $e\n"
done
cd $back
echo -en $tmpVar > $dump
kdialog --title "KdeTemp" --textbox $dump
rm -f $dump
Y eso es todo, hasta otra
ps: De nuevo todo bajo la WTFPL, claro
Suscribirse a:
Entradas (Atom)
#!/bin/bash
# Escrito por kenkeiras
back=$PWD
cd /proc/acpi/thermal_zone/
if [ "$1" = "-c" ]; then
lonx=4
else
lonx=3
fi
for i in *; do
e=`cat $i/temperature`
e=${e:`expr length "$e"`-4:$lonx}
echo "$i: $e"
done
cd $back