Vous êtes sur la page 1sur 6

UNIVERSIDAD POLITCNICA TERRITORIAL DEL ESTADO ARAGUA

DEPARTAMENTO DE INFORMTICA
Creando interfaces en GtDia!o"
Por #or"e Do$%n"&e' C()*e'
+odoc(a,&-ta.ed&.*e
Poca informacin se encuentra sobre Gtkdialog en espaol y seguramente se han
preguntado como hacer esas "ventanas" o interfaces de las aplicaciones o como es
que un shell script cobra vida dando click sobre l.
Les aclaro que no s mucho sobre Gtkdialog, as que explicar este tutorial de una
manera mecanizada de manera que puedan dar sus primeros pasos escribiendo cdigo,
quien quita y despierta el inters en otros lenguajes y se vuelven expertos en la
materia.
Bueno empecemos
Como parte de nuestra tarea como docentes, debemos preparar material para que
nuestros estudiantes aprendan, y que mejor que recurrir a Elearning. ya ellos son
alfabetas digitales
1
.
Program un shell script para grabar video con instrucciones acerca de la interfaz CODE::BLOCK para mis clases
de lenguae C! gt"dialog versi#n $%&%' release (C) *$$'+*$$, Laszlo Pere! *$--+*$-* .hunor! en Linu/ Debian ,%0
estable%
1e a2u3 el shell script%
echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo 4 por 5orge Dom3nguez Ch6vez para captura de pantallas 4
echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo
789bin9bash
D:;EC.O;:O<9home9=LO>?@AE9Bideos9
echo 4Bienvenido: =LO>?@AE4
echo
echo -
echo 4:niciando Ccript para grabar su Escritorio%%%4
echo
sleep -
7 Aostrar la ;esoluci#n de la pantalla eemplo &$$/0$$
1 Observen como manejan el telfono inteligente o la tablet.
L:?E<D/randr +2 E grep CcreenD
F:D.1<Decho =GL:?EH E aI" JG print =& HJD
1E:>1.<Decho =GL:?EH E aI" JG print =-$ HJ E aI" +K4!4 JG print =- HJD
echo 4%%%la resoluci#n detectada es =GF:D.1H/=G1E:>1.H4
echo
sleep -
read +p 4LMue frecuencia de refresco 2uieresN (*O es lo normal! recomendado '$): 4 KPC
echo
read +p 4LMuieres grabar la captura con BOPN si9no: 4 @QD:O
echo
read +p 4Elia un nombre para guardar la captura: 4 ?OAB;E
echo
echo 4El v3deo resultante se crear6 en la ruta actual (o en la indicada) con los siguientes datos:4
echo 4+++++++++++++++++++++++++++++++++++++4
echo 4%%%::: ;ECQAE? de la Operacion :::%%%4
echo 4+++++++++++++++++++++++++++++++++++++4
echo 4 ?ombre de la captura: =?OAB;E%mpg4
echo 4 Qbicacion del archivo: =D:;EC.O;:O4
echo 4 ;esoluci#n: =GF:D.1H/=G1E:>1.H4
echo 4 .asa de refresco: =KPC fps4
echo 4 Con audio: =@QD:O4
echo 4++++++++++++++++++++++++++++++++++++++4
echo
echo 4Presiona CtrlRC para terminar con la captura de v3deo cuando 2uieras4
sleep S
echo 4Puedes minimizar esta ventana! pues la grabaci#n comenzar6 en S segundos%%%4
sleep S
echo
7 +f :ndica el formato%
7 +s :ndica la resoluci#n% Puede ser: -$*S/,0&! hd,*$! 0S$/S&$! svga)%
7 +r .asa de frames%
7 Lugar en donde el v3deo se va a guardar (donde se eecuta el script)
7 mi+video%mpg ?ombre T e/tensi#n del archivo%(Para cambiar el formato! use la e/tensi#n 4%mpg4 )
if U =@QD:O < 4no4 V then
ffmpeg +f /--grab +s =GF:D.1H/=G1E:>1.H +r =KPC +i :$%$ +same2 9home9=LO>?@AE9videos9=?OAB;E%mpg
fi
if U =@QD:O < 4si4 V then
ffmpeg +f alsa +ac * +i pulse +f /--grab +r =KPC +s =GF:D.1H/=G1E:>1.H +2scale - +i :$%$ 9home9=LO>?@AE9videos9
=?OAB;E%mpg
fi
El shell script es funcional, cumple con su objetivo, pero no es atractivo para
mis estudiantes. Quienes me retan a realizar el mismo script pero con una ventana
en GTKdialog
2
.
Gtkdialog es una utilidad para el desarrollo rpido y fcil de una GUI.
Puede ser utilizado para crear las cajas de dilogo para casi cualquier programa
interpretado y compilado que es una caracterstica muy atractiva puesto que el
revelador no tiene que aprender las varias idiomas del GUI para diversos lenguajes
de programacin.
Preparando el terreno
Lo primero es crear un archivo en texto plano donde van a escribir el cdigo.
Luego abren en algn editor de texto el script (geany, nano, sublime text lo que
sea ), en lo personal utilice gedit.
La base para usar gtkdialog
ahora esto es imperativo para construir una interfaz gtkdialog que sea
interpretada por bash, escribimos lo siguiente.
#!/bin/bash
D:;EC.O;:O<9home9=LO>?@AE9Bideos9
U +z =>.KD:@LO> V WW >.KD:@LO><gt"dialog
.APD:;<9tmp9gt"dialog9e/amples94Dbasename =$D4
m"dir +p 4=.APD:;4
7 Aostrar la ;esolucion de la pantalla eemplo &$$/0$$
L:?E<D/randr +2 E grep CcreenD
F:D.1<Decho =GL:?EH E aI" JG print =& HJD
1E:>1.<Decho =GL:?EH E aI" JG print =-$ HJ E aI" +K4!4 JG print =- HJD
e/port D:@LO><J
XIindoI title<4>rabaci#n de escritorio4 icon+name<4gt"+about4 resizable<4true4 Iidth+re2uest<4S$$4 height+
re2uest<4'-$4Y
XframeY
Xvbo/Y
Xhbo/ space+fill<4true4Y
Xte/tYXlabelYPar6metros re2ueridos para la operaci#n:X9labelY
X9te/tY
X9hbo/Y
Xhbo/ homogeneous<4true4Y
Xte/tY
XlabelYKrecuencia de refresco: X9labelY
2 Quin sabe cmo encontraron o quin se les dijo sobre GTKdialog
X9te/tY
Xcombobo/ case+sensitive<4false4 value+in+list<4true4Y
XvariableYKPCX9variableY
XitemY*OX9itemY
XitemY'$X9itemY
X9combobo/Y
X9hbo/Y
Xhbo/ space+fill<4true4Y
Xte/tY
XlabelYCaptura de voz: X9labelY
X9te/tY
Xcombobo/ case+sensitive<4false4 value+in+list<4true4Y
XvariableY@QD:OX9variableY
XitemYC:X9itemY
XitemY?OX9itemY
X9combobo/Y
X9hbo/Y
Xframe DirectorioY
Xhbo/Y
XentrT accept<4directorT4Y
XlabelYCelect a DirectorTX9labelY
XvariableYK:LEZD:;EC.O;[X9variableY
X9entrTY
XbuttonY
Xinput file stoc"<4gt"+open4YX9inputY
XvariableYK:LEZB;OFCEZD:;EC.O;[X9variableY
Xaction tTpe<4fileselect4YK:LEZD:;EC.O;[X9actionY
X9buttonY
X9hbo/Y
X9frameY
Xhbo/ space+fill<4true4Y
Xte/tY
XlabelY?ombre: X9labelY
X9te/tY
XentrT tagZattr<4value4%%%Y
XdefaultY?ombre de videoX9defaultY
XvariableY?OAB;EX9variableY
X9entrTY
X9hbo/Y
Xhbo/Y
Xte/tY
XlabelYLa grabaci#n comienza en S segundos%%%X9labelY
X9te/tY
X9hbo/Y
Xhbo/ space+fill<4true4 space+e/pand<4true4Y
Xhbo/Y
Xbutton o"YX9buttonY
Xbutton cancelYX9buttonY
X9hbo/Y
X9hbo/Y
X9vbo/Y
X9frameY
X9IindoIYJ
:<=:KC\ :KC<44
for C.@.EAE?.C in =(gt"dialog ++program D:@LO>)\ do
eval =C.@.EAE?.C
done
:KC<=:
if U 4=E]:.4 < 4OK4 V\ then
if U 4=@QD:O4 < 4?O4 V\ then
ffmpeg +f /--grab +s =GF:D.1H/=G1E:>1.H +r =KPC +i :$%$ +same2 =K:LEZD:;EC.O;[9
=?OAB;E%mpg
fi
if U 4=@QD:O4 < 4C:4 V\ then
ffmpeg +f alsa +ac * +i pulse +f /--grab +r =KPC +s =GF:D.1H/=G1E:>1.H +2scale - +i :$%$
=K:LEZD:;EC.O;[9=?OAB;E%mpg
fi
fi
vea la figura siguiente:
Esto demuestra 2ue crear una interfaz es m6s simple de lo 2ue muchos pensamos! claro 2ue e/isten una buena
cantidad de comandos! acciones! atributos! variables! funciones e/tras 2ue se pueden usar adem6s de las 2ue
e/pli2ue! pero como introducci#n a gt"dialog les ser6 de utilidad%
Ci me e2uivoco en alg^n concepto por favor me corrigen o aportan m6s informaci#n al respecto% Ai intenci#n no
es ense_arte! s#lo documentar lo 2ue voT aprendiendo%

Vous aimerez peut-être aussi