@Bucio: @edramagor no creo que lo soporte mi corazón :(

Archivos de ‘gtkdialog‘

 
 

GtkDialog

Continua de GtkDiialog-IV.

Siguiendo con las ventanitas (yo les digo así),  como todás comienza por <windows> y dentro de ella va un </frame>:


<window>
<vbox>

<frame ventanita>

<text>
<label> es como hacer un frame </label>
</text>

</frame>
<hbox>
<button ok></button>
<button cancel></button>
</hbox>
</vbox>
</window>

Ejemplo

Ejemplo

[script ventanitaframe]

Hay muchos tipos de atibutos, como posición, tipo de dialogo(mensaje, alerta..):

Ventanitas Atributos

Ventanitas Atributos

[script ventanitaframe1]

[xml]
#! /bin/bash

export DIALOG=’














gtkdialog –program=DIALOG

export DIALOG=’














gtkdialog –program=DIALOG

export DIALOG=’














gtkdialog –program=DIALOG

export DIALOG=’














gtkdialog –program=DIALOG

export DIALOG=’














gtkdialog –program=DIALOG

export DIALOG=’














gtkdialog –program=DIALOG
[/xml]

Mientras esa serían las ventanitas, para jugar un rato, un post más y se termina mi odisea de aprender bien el gtk-dialog… :D

GtkDialog

continuación de: GtkDialog-III.

Creo que es hora de ver como hacer unos menús, siguiendo con la estructura, <menubar></menubar> definen la barra de menú, dentro de ella debe de contener <menuitem></menuitem> el cual muestra los menú.

<menubar>
<menu>
<menuitem>
<label>gtk-open</label>
</menuitem>

<menuitem>
<label>gtk-save</label>
</menuitem>
<menuitem>

<label>gtk-quit</label>
<action>EXIT="quit"</action>
</menuitem>
<label>File</label>
</menu>
</menubar>

Menuss[Código: Menu.sh ]

En la barra de menu podemos usar iconos, como el ejemplo que puse en la imagen, con el atributo icon=”gtk-icono a usar”,  y crear etiquetas alado de los iconos,  para usar los predifinidos sin etiquetas (labels), podemos usar stock=”gtk-open”, lo cual pondría el icono con su nombre pero, esto ya depende del sistema,  al poner el icono gtk-open y tienes tu distribución en español, lo leera como “abierto”, podemos decir los predifinidos :D.. también tenemos una opción de separar los menus con <separator></separator>. Esté es un ejemplo.

Menu con iconos[Código: MenuIcon.sh]

En el menú, open podemos usar chooser:

Chooser[Código: choo.sh]

Algo parecido a un menú, es el noteBook, esto en lo personal me gusto mucho:

NoteBook[Código: notebook.sh]

Para crear las pestañas, se usa <notebook></notebook>, dentro de ella los atributos serían los menus, por así decirlo <notebook labels=”Checkbox|Radiobutton|Tree“>. dentro de ello se pone el contenido de cada pestaña, ya sea abriendo un nuevo <vbox> o como en el caso de Tree, un nuevo <tree>.

Solo es cosa de idear como queremos el menú, y poner a trabajar nuestras mentes maleadas :D…

Creando siguiente tema, creo que serán sobre ventanas xD.

GtkDialog

Continuación de :

gtkDialog-II

Vimos los botones, sencillos entonces nos damos una idea de como funciona esto, lo que se puede hacer con los atributos, hay más widgets todavía, como los Checkbox, esto es sencillo:

<checkbox>
   <label>Esto es un CheckBox</label>
   <variable>CAJITA1</variable>
   <action>echo checkbox esta en $CHECKBOX marcado</action>>
</checkbox>

Sencillo como crear checkbox, tiene muchos atributos como marcar, habilitar, deshabilitar, hacer combinaciones:

CheckBox[code: check.sh]

No solo cajitas podemos hacer también podemos usar un radio button,  de la misma forma que checkbox :

RadioButton
[code: checkb.sh]

Teniendo en cuenta esto, también salen los combos, las cajitas de combox, aquí tiene un nombre chistoso combobox:

Combobox
[code: combobox.sh]

Todo esto me hace recordar a mi querido zenity, en el bash, a lo que mis recuerdos me llevan a que aquí también tenemos una barra de progreso, un poco más divertida:

<progressbar>
<label>algo de texto</label>
<input>for i in $(seq 0 10 100); do echo $i; sleep 0.3; done</input>
<action type="exit">Listo</action>
</progressbar>

Podemos ver que no tiene nada diferente a lo demás, en el input podemos ejecutar el tiempo y con un simple ciclo for,  Son determinados  espacios en un tiempo..

Barra
[code: progresobar.sh]

En zenity, es un poco más facil y solo consta de :

zenity --progress --auto-close

La barra de Progreso, también puede dividirse por partes e imprimir algunas frases dentro de la barra, como el ejemplo del for simple que estaba arriba, solo que aquí creamos una Función, sip una función para agrupar trozos de código de una manera más lógica:
[php]
function progress() {
for i in $(seq 0 10 100); do
echo $i
[ "$i" -le 30 ] && echo "Empieza... tun tun"
[ "$i" -le 60 -a "$i" -gt 30 ] && echo "Uhh ala mitad..."
[ "$i" -gt 60 ] && echo "Termina u,u"

sleep 0.3
done;

echo ready
}
[/php]

Partes de la barra[code: progresobarter.sh]

Hagamos lago más rapido y que se sobreponga, en esté caso al comando date, que muestra la fecha..o el comando que quieras.. como dicen los españoles, "os dejo a vuestra imaginación":

[php]
#! /usr/bin/gtkdialog -e

function progress() {
for i in $(seq 0 10 100); do
echo $i
[ "$i" -le 30 ] && echo "Empieza"
[ "$i" -le 60 -a "$i" -gt 30 ] && echo "ya casi"
[ "$i" -gt 60 ] && echo "Fin"

sleep 0.3
done;

echo ready
}

function progress_fast() {
for i in $(seq 0 1 10000); do
echo $((i/100))
[ "$i" -le 3000 ] && echo "1....."
[ "$i" -le 6000 -a "$i" -gt 3000 ] && echo "2...doshhh"
[ "$i" -gt 6000 ] && echo "fin .. xD rapisimo"
#sleep 0.1
done;

echo ready
}
[/php]

Progresooo
[code:  progresobartest.sh ]

SIGUIENTE POST GTDIALOG IV

GtkDialog

Continuación de :

INTRO GTKDIALOG

Siguiendo con gtkDialog, ya hemos aprendido lo básico, como llamarlo, ejecutarlo y hasta su integración con en lenguaje C, ahora veremos los widgets, ya que Gtkdialog es una lenguaje de descripción XML, es capas de denotar capaz de denotar cualquier complejo de dialogo que contienen las cajas y los widgets estos son los botones, campos de entradas, listas y otras cosas, que veremos, como la mayoría de los comandos esté tiene atributos (nota Acciones:: ), creo que es esté caso sería como en la mayoría de los lenguajes jeje, pero parecen más comandos, se agrupa junto con los contenedores (nota Contenedores::), de cabeza acostados como quieran, cajas todo debe estar en su respectivo contenedor, los widgets no pueden estar solo es peligroso para el exterior, o algo así dice el tuto jaja.

Bueno en los ejemplos anteriores solo vimos como se creaban botones con los labels también podemos poner algo de texto, claro es XML, negritas, cursivas :-)..


[code: texo_atributos.sh]

Aquí no hay mucho que explicar ya que es bastante explicito:

<text atributo atributo2>
    <label>"<b>Negritas</b> texto xD  "</label>
  </text>

Archivos de entrada:

También tenemos esto, se define con el,<input file></input>, y puede ser declarado dentro de su contenedor que tipo de archivo abriremos ya sea una imagen o archivo hasta un comando ¡¡ (Todo lo que se puede hacer wowo):

Input :-D Archivos comandos e imagen[code: input.sh]

Es sencillo aprendiendo como es la estructura:

<frame Aqui Pondríamos el titulo del frame>
<text> <-- Que es lo que queremos en esté caso un archivo que contiene texto o img (pixmap)
<label>TEXTO ESTATICO OHO OHHH</label> <-- por si las dudas
<input file>/tmp/log</input> <-- abrimos Archivo o comando

</text>

</frame>

Los botones, son simplemente <button ok><action>echo Presionaste Ok</action></button>, algunos botones predefinidos son:

  • '<button ok></button>'
  • '<button cancel></button>'
  • '<button help></button>'
  • '<button yes></button>'
  • '<button no></button>'

Botones

[code: button.sh]

Siguiente Tema

GtkDialog

GtkDialog :-)

Hace tiempo miguex, creador y desarrollador de IkimLinux, me comento sobre esto, yo solo jugaba con zenity, los motivos tenía un gusto por esté comando, tiene una apariencia menos amigable para el usuario, aparte esté comando es con uno de los que empecé a crear mis ventanitas. con GtkDialog, es diferente tiene mejor look, y puedo usar frames, botones etc.. :). Aunque zenity, también puede usar opciones de GTK+, le di un chanceé a gtkDialog, y tenía ganas de hacer una especie de Tutorial para esto, espero terminarlo :-).
Esta basada en una Librería GTK+, Se puede utilizar para crear cuadros de diálogo de casi todos los programas compilados e interpretados y que es una característica muy atractiva ya que el desarrollador no tiene que aprender diferentes idiomas para la interfaz gráfica diversos lenguajes de programación.
Empezare con un event-driven en bash, es sencillo hacer estos eventos-impulsados para bash, declarando en la primeras lineas una llamada a gtkdialog con la función -e esto tiene que ser construido usando  funciones y las descripciones de diálogo (como las variables de entorno), después le sigue MAIN_DIALOG,  Este es como la función main() de C.

FuncionImprimir

También se pueden correr scripts en AWK, usando #! /usr/bin/awk -f, y podemos usar también C:

Uando C y compilando

[Codigo: gdialog.c - binario ]

Yo uso komodo, pero para cuando usen C, les recomiendo geany u otro. Que nos facilite la compilación y la ejecución de esté. jeje dejando los compiladores nos vamos, a  los comandos, con gtkDialog.

Creando nuestro primer hola mundo, en un script en bash, usando la librería de gtkDialog:

PrimerScript[Código: 1.sh]

#! /bin/bash
export MAIN_DIALOG='
<vbox>
<text>
<label>Hola Mundo Cruel</label>
</text>
</vbox>'
gtkdialog --program MAIN_DIALOG # Desde aquí llamamos GtkDialog & Main

Muy sencillo no?, ahora un ejemplo de cuando necesitamos llamar enviar el estado de los widgets a la salida estándar al salir y así es como podemos obtener la entrada del usuario para el programa de BASH, sería una epecie de comando READ, algo así como guardar una variable flotante, pero en esté caso tenemos unos botones, Los cuales almacenan la información después de esté pasa por un for, el cual contiene IFS, esto nos sive para protejer los caracteres de los espacios, después de esto, sigue un pequeño if, el cual nos manda a imprimir lo que pusimos dentro del campo:

Leyendo variables y procediendo IFS[Código: 2.sh]

Existe, Otra forma cuando son programas grandes de llamar a gtkDialog, una buena idea para romper el código de los archivos separados y se le es más fácil leer a gtkdialog. Al usar esto podemos obtener a partir de la salida estándar de la secuencia de comandos como por lo general.

/usr/bin/gtkdialog -f#! /local/bin/gtkdialog -f
[Código: 3.sh]

Esto sería lo primero que aprenderíamos, al usar un lenguaje de programación o algo parecido, en esté caso GtkDialog.
Un saludo a @jainuX, que se desvelo esté domingo conmigo :-).

Siguiente Tema…


Campus Party

Publicidad