Como usar ventana arrastrar - soltar

Post Reply
Message
Author
arivas_2005
Posts: 212
Joined: Sun 25 Feb 2007, 14:39

Como usar ventana arrastrar - soltar

#1 Post by arivas_2005 »

Saludos

Tengo la necesidad de usar dentro de un scriptillo una ventanita que me permita arrastrar y soltar un folder o archivo desde el manejador

una ventanita como la de la figura que aparece al configurar accion a ejecutar en la parte rotulada "arrastre la aplicacion apropiada aqui", que en mi caso sería, " arrastre la carpeta o archivo aquí"

He intentado localizar el archivo que tiene el script de esa ventanita pero resulta que no se puede visualizar su contenido.

si me cuentan como se llama la ventana grande(me refiero al lenguaje, pues no es Xdialog, o si?), el panel ese que me interesa (de arrastre), y de ser posible un ejemplitillo.
Gracias anticipadas por la colaboración.
Attachments
capture13480.png
(30.3 KiB) Downloaded 306 times

wow
Posts: 1052
Joined: Fri 30 Jun 2006, 00:18
Location: Peru

#2 Post by wow »


arivas_2005
Posts: 212
Joined: Sun 25 Feb 2007, 14:39

#3 Post by arivas_2005 »

Saludos
" GtkDialog - tips"
ya lo he revisado antes pero no le encuentro la forma de armar las partes que ahí se ofrecen. En realidad hay una riqueza en código pero está segmentado y para rearmar un par de partes se requiere la experiencia, aspecto del que carezco.

-- Les cuento, no soy programador de oficio, pero si uso muchisimo la computadora y con frecuencia tengo actividades muy y muy repetitivas y es en eso en lo que siempre me e auxiliado del equipo y códigos. La densidad de la repetitividad me consume mucho tiempo y mi protocolo es: un par de horas a localizar un procedimiento de hacer lo repetitivo de forma rápida. De no localizarlo, se procede de forma manual hasta agotar la actividad porque la siguiente ya va en acumulación. De forma similar sucede con el uso de Libreoffice y sus macros --

el kid actual es armar una ventanilla como la de la figura, con el detalle de arrastrar y soltar ya sea un archivo o un folder.

Gracias por los aportes.

Wognath
Posts: 423
Joined: Sun 19 Apr 2009, 17:23

#4 Post by Wognath »

Hola arivas,
peasyscale o peasypdf le puede servir de ejemplo.

También funciona con Xdialog en vez de gtkDialog:

Code: Select all

SOURCE=$(Xdialog --inputbox "Arrastre folder o archivo aquí" 0 0 2>&1)
if [[ -d "$SOURCE" ]] ; then
...
elif [[ -f "$SOURCE"]] ; then
...

arivas_2005
Posts: 212
Joined: Sun 25 Feb 2007, 14:39

#5 Post by arivas_2005 »

Gracias Wognath por su aporte

me esta ayudando mucho.
Cómo podría modificarse el scriptillo para que con solo soltar haga la captura sin necesidad de clickear el boton aceptar.

Nueva mente gracias.

Wognath
Posts: 423
Joined: Sun 19 Apr 2009, 17:23

#6 Post by Wognath »

Cómo podría modificarse el scriptillo para que con solo soltar haga la captura sin necesidad de clickear el boton aceptar.
También a mí me gustaría saberlo. Ojajá alguien nos informe! Mientras tanto, un pequeño cambio le permite arrastrar la carpeta directamente al icono del script y así brincar el Xdialog:

Code: Select all

SOURCE=$1
[[ -z $SOURCE ]] && SOURCE=$(Xdialog --inputbox "Arrastre folder o archivo aquí" 0 0 2>&1)
if [[ -d $SOURCE ]] ; then
etc.
P.D. Es impresionante la diciplina de proceder "de forma manual hasta agotar la actividad" ¡luego de sólo un par de horas!

arivas_2005
Posts: 212
Joined: Sun 25 Feb 2007, 14:39

#7 Post by arivas_2005 »

Saludos.

Esperemos el auxilio para organizar el scriptillo que permita arrastrar y soltar y que la captura se realice con solo soltar lo que se arrastra. Tal como funciona la ventanita de la figura al inicio y la cual se ocupa para asignar el programa que debe abrir rox al dar clic sobre un archivo en particular.

En la págna " GtkDialog - tips" hay ejemplos, pero como comenté anteriormente, es necesaria la experiencia en el uso del gtk o innumerables pruebas errores +google +google y ++tiempo. Y tal vez por ahí ya está la solución.

También, podría ser que alguien que domine el ingles nos auxilia soliciando colaboracion en foro de programacion sobre este kid.

En cuanto al protocolo -que uso-, le comento que es asi porque en varias ocasiones las soluciones no aparecen en el tiempo en el que urge su utilidad. Por ejemplo, El viernes anterior, tenía que revisar los contenidos de casi 800 correos y presentar informe el lunes.
Así que he tenido un fin de semana muy fatigoso.
Este dia, inicio la recepción de mas de 200 carpetas con distintos ficheros para ser analizadas.

Nuevamente agradezco su apoyo

Wognath
Posts: 423
Joined: Sun 19 Apr 2009, 17:23

#8 Post by Wognath »

arivas, yo con mucho gusto hago la consulta en el foro. http://www.murga-linux.com/puppy/viewtopic.php?p=917488

Por ahora, ya que Ud. está contra reloj, no le sirve un script que actúa sobre "$1", sin ventanita?

En cualquier caso, suerte con las 200 carpetas.

"pruebas errores +google +google y ++tiempo" :lol: exactamente!

Wognath
Posts: 423
Joined: Sun 19 Apr 2009, 17:23

#9 Post by Wognath »

Un experto en gtkDialog, Zigbert (autor del post que menciona wow), respondió en seguida. Resulta que gtkDialog tiene la opción <action signal="changed">, que produce una acción inmediata sin necesidad de apretar un botón.

Code: Select all

export test='
  <entry>
    <variable>X</variable>
    <action signal="changed">func $X</action>
  </entry>'
gtkdialog --program=test
func es una función previamente definida que actúa sobre la variable $X

Supongo que las dos horas ya pasaron en esta ocasión, pero espero que le sirva en otra.

arivas_2005
Posts: 212
Joined: Sun 25 Feb 2007, 14:39

#10 Post by arivas_2005 »

saludos

Luego de bastante prueba-error y usando las infos y referencias de este post, ya tengo el siguiente código para capturar rutas de archivos o carpetas y texto plano

Code: Select all

#!/bin/bash 
#nombre del script   draganddropgtk
dialogo (){
echo $ENTRY> /tmp/rutabase
}

export -f dialogo

export test="
<vbox> 
    <text>
       <label>Arrastre y suelte en el cuadro blanco</label>
    </text> 
    <text>
       <label>presione F y cortarà el ciclo</label>
    </text> 
	<entry accept=\"directory\">
	   <height>100</height><width>200</width> 	 
	   <variable>ENTRY</variable> 
	    <action signal=\"changed\">dialogo</action>  
	    <action signal=\"changed\">exit:exit</action>  
	 </entry>	
  </vbox>
"
gtkdialog -p test

A=$(cat /tmp/rutabase)
rm -f cat /tmp/rutabase
Xdialog --title "Borrando.." --right -no-buttons --msgbox "capturado: ""$A" 5 100 & MSGID=$! 
# variable A con la info capturada para ser manipulada con codigo
como no encontré como limpiar la cajita de la captura, le adicioné la linea de exit:exit (asi encontré!) para cerrarla y despúes volverla a abrir

Para no estar clickeando cada vez, agrego esto al final del código anterior

Code: Select all

if [ $A = "F" ]
then
  a="a"
 else
  ./draganddropgtk
fi
Hasta ahí me da la cabeza - claro con la ayuda anterior-
Considero que puede ser refinado y dejarlo con mas acciones y mas ordenado
Algunos problemillas encontrados:
<label> no funciona con comillas
<text use-markup="true">
<label>"<b>use-markup</b>, which is cool."</label>
</text>
<text wrap="true" width-chars="10">
<label>wrap: wrap lines if the text becomes too wide, which is also cool!</label>
</text>
<text selectable="true">
<label>selectable text, also cool</label>
</text> no los pude hacer trabajar
etc ..

Gracias Wognath, y a los demas colaboradores
Attachments
capture2482.png
(3.25 KiB) Downloaded 200 times

Wognath
Posts: 423
Joined: Sun 19 Apr 2009, 17:23

#11 Post by Wognath »

:D Brillante! 8)

arivas_2005
Posts: 212
Joined: Sun 25 Feb 2007, 14:39

#12 Post by arivas_2005 »

Encontre esto por casualidad pero va con el tema
http://www.murga-linux.com/puppy/viewto ... 2&t=107816

User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

puede te ayude

#13 Post by mister_electronico »

Puede te ayude.

http://www.murga-linux.com/puppy/viewto ... 165#795165

El script que crees ejecútalo desde el terminal.

saludos.

Post Reply