Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 06/02/2009, à 19:44

Hizoka

GTKDialog, infos, astuces pour reprendre en main le tuto !

Bonsoir !

Je suis en train de découvrir le logiciel GTKDialog, qui permet de créer des fenêtres graphiques en gtk tout en utilisant le langage bash.

Il existe un tuto qui a été débuté ici : http://gtkdialog.tuxfamily.org/doku.php

J'ai contacté l'auteur du tuto qui m'a répondu :

Hizoka a écrit :

Bonjour !

Je viens de lire le tuto de GTKDialog (je le découvre), je voulais savoir si tu avais pour projet de continuer le tuto, car cela me permettrais (a moi et surement tant d'autres) de pouvoir mieux cerner et utiliser ce logiciel qui semble très pratique.

merci pour ton travail !

tuxgasy a écrit :

Salut!

J'espère bien continuer le tuto mais malheureusement le temps me manque. D'ailleurs, ce tuto était au début qu'un simple mémo. Je ne maîtrise pas du tout cet outils. N'hésite pas à ajouter tes expériences.

A+

Donc, si on veut voir le tuto avancé, il faut y mettre les mains smile

Toutes les infos se trouve sur ce fichier pdf : http://hizoka.funcenter.fr/linux/gtkdialog.pdf

####################################################
MISE A JOUR DES PROBLEMES et des soluces :
####################################################

LES ICÔNES :
- Comment peut-on intégrer ses propres icônes dans les listes ou pour les fenêtres ?

- Sur mon pc, le seul dossier contenant les icônes gtk (ex : gtk-help) se trouve être le dossier : /usr/share/doc/libgtk2.0-doc/gtk/
Or, même si j'ajoute des icônes dedans (quelque soit le nom), il m'est impossible de les faire apparaître de la même façon que les gtk...

=> Voir le script AnsuzPeorth : http://forum.ubuntu-fr.org/viewtopic.ph … 5#p2408635

- Quelle est la différence entre : <item icon="pdf"></item> et <item icon_name="rpm"></item> et <item stock="gtk-index"></item> ?

- Chez moi, quand j'utilise : "<item stock="gtk-index"></item>" sur un item, tous mes items prennent cette icône, est-ce votre cas aussi ?



BARRE DE CHARGEMENT :
- Comment pourrait-on utiliser l'option pulsate ? (disponible sur zenity)

=> Voir le script AnsuzPeorth : http://forum.ubuntu-fr.org/viewtopic.ph … 5#p2408635

- Comment afficher plusieurs lignes de textes :

=> Il suffit d'ajouter "\r" pour sauter des lignes.
ex : echo -e "Voici un texte \r qui saute des \r lignes.."



SÉLECTEUR DE FICHIER :
- Comment permettre une sélection multiple ? (dispo également sous zenity)

=> pour contourner le probleme : ajoute l'adresse du fichier selectionné dans un fichier.

- Comment pourrait-on utiliser une variable pour ouvrir le dossier de base avec le sélecteur de fichier CHOOSER (sachant qu'apparament la balise "input" ne fonctionne pas...) (possible également avec zenity smile) ?
ex de CHOOSER :

<chooser>
	<height>500</height><width>600</width>
	<variable>CHOOSER</variable>
	<default>/usr/share/</default>
</chooser>

TABLEAUX :/b]
- Comment récupérer une autre valeur que celle retournée par la 1ère colonne de la réponse ? (zenity...)

=> <tree exported_column="3">

- Comment cacher une colonne de l'affichage ? (zenity...)

=> Semble impossible...

- Peut-on rendre une liste inselectionnable ?


[b]ALIGNEMENTS DES WIDGETS:
- Dans le cas d'un bouton qui prend la largeur de la fenêtre, comment faire en sorte que l'icône et le texte soit cote-cote et non séparé de plusieurs centimètres ? Sachant que sans image, le texte est au centre...

- Dans le cadre de l'utilisation de texte via un "<label>", le texte est toujours centré, comment le mettre à gauche ? (zenity...)

=> Pour un bon alignement des widget, il faut utiliser le bourrage : http://forum.ubuntu-fr.org/viewtopic.ph … 5#p2408635
Il est égalmeent possible d'y ajouter : width_request ou height_request.

Ex : <text width_request="20">
    <label>_
    </label>
</text>



SCRIPT EN LUI MÊME :
- Comment peut-on utiliser les apostrophe dans les textes ? un simple " \' " ne fonctionne pas...

=> Il faut utiliser : '\''


FONCTIONS DANS LE SCRIPT :
J'ai vu dans les exemples qu'il était possible d'utiliser des fonctions, mais leur exemple ne marche pas chez moi, et pour vous, qu'est-ce que ça donne ?

=> Ne fonctionne pas sous ubuntu.


Il semble également possible d'utiliser une boucle dans le script, cela e fonctionne pas non plus :

#! /bin/bash

export MAIN_DIALOG='
 <vbox>
  <frame Imperative Example>
    <checkbox active="true">
      <label>First checkbox</label>
      <variable>CHECKBOX</variable>
    </checkbox>
    <command assignment="n := 1"></command>
    <while condition="n = 22">
      <checkbox>
        <label>The second checkbox</label>
      </checkbox>
      <command assignment="n := n + 1"></command>
    </while>
  </frame>
  <hbox>
   <button ok>
     <variable>OKBUTTON</variable>
   </button>
   <button cancel></button>
  </hbox>
 </vbox>
gtkdialog --program=MAIN_DIALOG --print-ir
#gtkdialog --program=MAIN_DIALOG
'
Hizoka a écrit :

0  label := 'First checkbox'
    1  variable := 'CHECKBOX'
    2  push(new checkbox())
    3  push(number '1')
    4  n := pop()
    5  push(variable 'n')
    6  push(number '22')
    7  push(pop() = pop())
    8  if not pop() goto 16
    9  label := 'The second checkbox'
   10  push(new checkbox())
   11  push(variable 'n')
   12  push(number '1')
   13  push(pop() + pop())
   14  n := pop()
   15  goto 2
   16  label := 'Imperative Example'
   17  push(new frame(pop()))
   18  variable := 'OKBUTTON'
   19  push(new okbutton())
   20  push(new cancelbutton())
   21  push(pop() + pop())
   22  push(new hbox(pop()))
   23  push(pop() + pop())
   24  push(new vbox(pop()))
   25  push(new window(pop()))

INTÉRÊT DE CERTAINES OPTIONS :
Toutes ces options sont dans les exemples.

- Quel est l'intérêt de : "<entry activates-default="true">" ? permettre l'utilisation d'un texte par défaut ? même en le mettant a false, le texte apparaît...

- Quel est l'intérêt de : "<button can-default="true" has-default="true">" ? je ne vois pas de différence en mettant des false à la place des true...

- Quel est l'intérêt de : "<hbox fill="true" expand="true">" ? Pas tout suivi non plus là...

<hbox fill="true" expand="true">
	<pixmap>
		<input file stock="gtk-info"></input>
	</pixmap>
	<text>
		<label>
"This is a label with a rather long text, so it must be wrapped as the user
resizes the window. However, the default label width is 30 characters."
		</label>
	</text>
</hbox>

- Quel est l'intérêt de : "<tree rules_hint="true">" ?....

- Quel est l'intérêt de : "<tree hover_expand="true" hover_selection="true">" ? Le hover permet de surligner la réponse que la souris survole. Mais comment l'utiliser ? le clic semble inefficace et au final ne renvoi pas de variable...


COMBOBOX :
- Quel est l'intérêt de : "<combobox case-sensitive="true">" ? false ne devrait pas permettre de voir la liste ?

- Quel est l'intérêt de : "<combobox allow-empty="false">" ? la je pige pas le coup du permettre le vide, cela concerne la variable ? l'item ? dans tous les cas, ça fonctionne avec ou sans...

- Comment utiliser un fichier pour créer la liste ? un "<input>cat fichier</input>" me donne une liste vide...
=> La solusion se trouve ici : http://forum.ubuntu-fr.org/viewtopic.ph … 0#p2430770


AUTRES :
- Comment cacher une box, ou un widgets conteneur ?

- Utilisation de commentaires dans le code de gtkdialog :
<!-- Voici des commentaires XML --> ne marche pas...

- Afficher une pop-up au survol de texte :
=> voir ici : http://forum.ubuntu-fr.org/viewtopic.ph … 5#p2414775 et http://forum.ubuntu-fr.org/viewtopic.ph … 5#p2414845

- Precisions et confirmations ur les effets de ces actions :

    <action signal="button-press-event"></action>
        Lorsque l'on clic sur le widget

    <action signal="button-release-event"></action>
        Lorsque le clic est relâché (si le clic commencé sur le widget)

    <action signal="enter-notify-event"></action>
        Lorsque la souris va sur le widget

    <action signal="leave-notify-event"></action>
        Lorsque la souris sort du widget

    <action signal="focus-in-event"></action>
        Lorsque le widget revient en 1er plan

    <action signal="focus-out-event">echo Label: focus-out-event</action>
        Lorsque le widget quitte le 1er plan

    <action signal="key-press-event"></action>
        Lorsqu'un caractère est rentré dans un widget

    <action signal="key-release-event"></action>
        Lorsque la touche d'un caractère est relâché dans un widget

    <action signal="hide"></action> ???

- Extraire les variables pour les utiliser dans un autre script :
=> voir ici :http://forum.ubuntu-fr.org/viewtopic.ph … 2#p2415732

Dernière modification par Hizoka (Le 18/02/2009, à 10:19)

Hors ligne

#2 Le 06/02/2009, à 19:54

yakusa77

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

ok tres bonne initiative hizoka, je vais taché d'aidé si je le peut...:)

Dernière modification par yakusa77 (Le 06/02/2009, à 19:54)


De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#3 Le 06/02/2009, à 21:23

yakusa77

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

pour sa je peut repondre

SCRIPT EN LUI MÊME :
- Comment peut-on utiliser les apostrophe dans les textes ? un simple " \' " ne fonctionne pas...

voila un exemple qui fonctionne:

<label> Par default si vous ne mettez rien, la vidéo de sortie sera dans le même repertoire que celle d'\''entré, simplement renommé avec l'\''extension .flv. Si vous entrez un nouveau nom, ne pas préciser l'\''extension.</label>

De vraies interfaces graphique pour vos scripts shell
"Précise 64" | AMD phenom II x4 black édition 965

Hors ligne

#4 Le 06/02/2009, à 22:59

AnsuzPeorth

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Bjr,

Tu aurais trouvé beaucoup de réponses à tes questions dans les scripts de frafa ou de moi.


A savoir, gtkdialog n'accepte pas les fonctions (en tout cas sous ubuntu), il faut donc passer par des petits scripts pour contourner le problème. Le truc, c'est qu'on se retrouve vite avec beaucoup de fichiers (on peut les rassembler...!)

Hizoka a écrit :

LES ICÔNES :
- Comment peut-on intégrer ses propres icônes dans les listes ou pour les fenêtres ?

Sous ubuntu, les icones scanner (en tout cas celle que j'ai trouvé), sont dans /usr/share/pixmap, dossier gnome et les bases gtk-. J'ai fait un petit script pour afficher les icones dispos sur son pc (ce script est tiré de gwebradio2)


#!/bin/bash

ls -lR /usr/share/icons/gnome/32x32 | grep -v "^l" | grep ".png" |  cut -d "." -f1 | awk '{print $8 "|" $8}' > /tmp/pix
ls -l /usr/share/pixmaps | grep -v "^l" | grep ".png" |  cut -d "." -f1 | awk '{print $8 "|" $8}' >> /tmp/pix
ls -l /usr/share/doc/libgtk2.0-doc/gtk | grep "gtk-.*\.png" |  cut -d "." -f1 | awk '{print $8 "|" $8}'  > /tmp/pix1
export ACCUEIL='<window icon-name="gwebradio" title="Gwebradio2.0.1" window_position="1">
<vbox>
<hbox>
<vbox>
<tree>
	<height>400</height><width>200</width>
	<variable>CHOIX_ICON</variable>
	<label>Icon</label>
	<input icon_column="0">cat /tmp/pix</input>
	<action signal="cursor_changed" type="refresh">VAR</action>
	<action type="exit">ok</action>
</tree>
<entry>
	<input>echo $CHOIX_ICON</input>
	<variable>VAR</variable>
      </entry>
</vbox>
<vbox>
<tree>
	<height>400</height><width>200</width>
	<variable>CHOIX_ICON1</variable>
	<label>Gtk</label>
	<input icon_column="0">cat /tmp/pix1</input>
	<action signal="cursor_changed" type="refresh">VAR1</action>
	<action type="exit">ok</action>
</tree>
<entry>
	<input>echo $CHOIX_ICON1</input>
	<variable>VAR1</variable>
       </entry>
   </vbox>
  </hbox>
<button></button>
</vbox>
</window>'

gtkdialog --program=ACCUEIL
exit
Hizoka a écrit :

BARRE DE CHARGEMENT :
- Comment pourrait-on utiliser l'option pulsate ? (disponible sur zenity)

Il suffit de revenir à zero ...! J'ai fait un truc (tiré d'un autre script), pour une barre à 3 niveau.A adapter, c'est un fichier de travail, donc à prendre ce qui est interessant...

2 Fichiers:

~cat  progress_fast.sh
#! /bin/bash
echo "10" > ./limiteur

i=0
echo $i > ./test


while [ $(cat ./test) != "" ]
do
	limit=$(cat ./limiteur)	
	if [ $i -eq $limit -o $i -gt $limit ]; then
		[ $limit -eq 100 ] && let "i= $limit / 2"
		[ $limit -eq 10 ] && i=0
		[ $limit -eq 50 ] && i=10
		echo $i
	else
		echo $i 
	fi
	[ "$i" -le 9 ] && echo "Attente ..."
	[ "$i" -le 49 -a "$i" -gt 11 ]  && echo "Telechargement..."
	[ "$i" -le 100 -a "$i" -gt 51 ] && echo "Recherche de tag et encodage..."
	let "i += 2"
	
sleep 0.2

done

exit
~cat gui-progress.sh
#! /bin/bash
export BAR_DIALOG='
<vbox>
  <frame Progress>
    <text>
      <label>Some text describing what is happening.</label>
    </text>
    <progressbar>
      <variable>PROGRESS_BAR</variable>
      <label>Some Text</label>
      <input>./progress_fast</input>
      <action type="refresh">ENTRY</action>
      <action type="closewindow">BAR_DIALOG</action>
      <action>echo ready</action>
    </progressbar>
  </frame>
  <hbox>
  <button><label>Niveau 0</label>
  	<action>echo 10 > ./limiteur</action>
     </button>
  <button>
  	<label>Niveau 1</label>
  	<action>echo 50 > ./limiteur</action>
      </button>
  <button><label>Niveau 2</label>
  	<action>echo 100 > ./limiteur</action>
     </button>
   <button cancel>
     <action type="closewindow">BAR_DIALOG</action>
   </button>
  </hbox>
 </vbox>
'

gtkdialog --program=MAIN_DIALOG

LISTES :
- Comment récupérer une autre valeur que celle retournée par la 1ère colonne de la réponse ? (zenity...)

Il faut utiliser les tree pour exporter une colonne voulue.

ALIGNEMENTS DES WIDGETS:
- Dans le cas d'un bouton qui prend la largeur de la fenêtre, comment faire en sorte que l'icône et le texte soit cote-cote et non séparé de plusieurs centimètres ? Sachant que sans image, le texte est au centre...

- Dans le cadre de l'utilisation de texte via un "<label>", le texte est toujours centré, comment le mettre à gauche ? (zenity...)

J'utilise un 'bourrage' (trouvé par hazard), sinon, Frafa à la solution pour positionner un widget precisement (y me l'a dit, mais j'ai pas noté....!).

<text><label>_
</label></text>

SCRIPT EN LUI MÊME :
- Comment peut-on utiliser les apostrophe dans les textes ? un simple " \' " ne fonctionne pas...

C'est vrai que c'est un peu galère, faut jongler entre les " et '...Sinon, en input, pas de problème.

A savoir aussi, gtkdialog bug pas mal, par securité, il faut mettre un protection pour bien fermer tout ce que gtkdialog a lancer.

A mettre avant window (à adapter)
 <action signal="delete-event">kill -9 $(ps ax | grep logmplayer | grep -v "grep logmplayer" | sed "s/^ *//" | cut -d " " -f1)</action>
</window>'

Bon, voilà ce qui me vient a l'esprit, j'ajouterais à mesure.

Et si Frafa passe par là, il completera, il a bien gratté avec gtkdialog !


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#5 Le 07/02/2009, à 02:32

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Salut Hizoka smile
a mon avis commence deja par decortiquer un peu le script de AnsuzPeorth
et le mien tu trouveras dedans quasi toutes les astuces que nous avont trouvés en tatonant...
je ne suis pas fort en tuto moa smile
mais pour des questions particulieres je serait là sans bleme...
scripts à trifouiller:
AnsuzPeorth ==>  Gwebradio2 ==> http://forum.ubuntu-fr.org/viewtopic.php?id=287977
frafa ==> Lanceur ==> http://forum.ubuntu-fr.org/viewtopic.php?id=286567
un exemple de drag and drop ==> http://liveusb.info/gtkdiaog/dag.tar.bz2
un exemple de progress ==> http://liveusb.info/gtkdiaog/progress.tar.bz2

EDIT: matte aussi c'te doc ==> http://xpt.sourceforge.net/techdocs/language/gtkdialog/

Dernière modification par frafa (Le 07/02/2009, à 03:49)

Hors ligne

#6 Le 07/02/2009, à 10:17

Hizoka

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Tu aurais trouvé beaucoup de réponses à tes questions dans les scripts de frafa ou de moi.

a mon avis commence déjà par décortiquer un peu le script de AnsuzPeorth
et le mien tu trouveras dedans quasi toutes les astuces que nous avons trouvés en tatonant...

Ouais mais pas super facile a décortiquer vos scripts smile
Sachant que c'est pour faire un tuto, je préfère avoir des infos claires smile
Qui fait quoi, comment et pourquoi smile

A savoir, gtkdialog n'accepte pas les fonctions (en tout cas sous ubuntu), il faut donc passer par des petits scripts pour contourner le problème. Le truc, c'est qu'on se retrouve vite avec beaucoup de fichiers (on peut les rassembler...!)

Oui c'est ce que je fais, utiliser des scripts annexes, mais vu que dans les exemples ils utilisaient des fonctions, je me demandais si ça ne venait pas du fait que je sois sous kde.

Sous ubuntu, les icônes scanner (en tout cas celle que j'ai trouvé), sont dans /usr/share/pixmap, dossier gnome et les bases gtk-.

Sous kde j'ai pas ce dossier smile

J'ai fait un petit script pour afficher les icônes dispos sur son pc

Je regarderai quand j'aurais un peu de temps.

Il suffit de revenir à zéro ...! J'ai fait un truc (tiré d'un autre script), pour une barre à 3 niveau.A adapter, c'est un fichier de travail, donc à prendre ce qui est interessant...

Quoi ? euuh je te suis pas, une barre avec pulsate permet de faire des allées retour de gauche a droite et de droite a gauche. Utile pour les fonctions dont tu ne connais pas le temps nécessaire pour que ça se fasse.

Dommage de devoir utiliser un script pour faire ça (limite plus simple de lancer une fenêtre zenity via une balise action).

Mais j'ai trouvé plusieurs fichiers utilisant des barres de chargement, il faut que je regarde tout ça, pas super simple à utiliser. Je regarderai également ton script.

Il faut utiliser les tree pour exporter une colonne voulue.

T'as un exemple stp ? car j'ai testé des trucs et j'y arrive pas....

J'utilise un 'bourrage' (trouvé par hasard), sinon, Frafa à la solution pour positionner un widget précisément (y me l'a dit, mais j'ai pas noté....!).

Faut que je test ça alors smile
Frafa !!! donne l'astuce big_smile

C'est vrai que c'est un peu galère, faut jongler entre les " et '...Sinon, en input, pas de problème.

Ouais j'ai vu qu'en important depuis un fichier ça marche.
Merci yakusa77 pour le coup du : '\''

A savoir aussi, gtkdialog bug pas mal, par sécurité, il faut mettre un protection pour bien fermer tout ce que gtkdialog a lancer.

En effet j'avais remarqué qu'il ne kill pas très bien ce qu'il lance...
merci pour cette belle ligne de commande smile

je ne suis pas fort en tuto moa smile

Pour ça que je me propose de le faire, donne des astuces, des trucs qui t'ont servis, des exemples pratiques...
tout ce qui peut être utile smile

EDIT: matte aussi c'te doc ==> http://xpt.sourceforge.net/techdocs/language/gtkdialog/

Pas intéressant, rien de nouveau, ça reprend les ex dispos sur notre dossier, seul truc intéressant et développer un peu :

6.2.6 'Save:NAME'
Some widgets can hold much data. (Currently only the edit widget capable to perform this action.)
The 'Save:' action will save the data found in the named widget to the filename found in '<output file>' attribute.
FIXME: This function is not working now, need to be fixed.
6.2.8 'Clear:WIDGET'
6.2.9 'RemoveSelected:WIDGET'

AnsuzPeorth ==>  Gwebradio2 ==> http://forum.ubuntu-fr.org/viewtopic.php?id=287977
frafa ==> Lanceur ==> http://forum.ubuntu-fr.org/viewtopic.php?id=286567
un exemple de drag and drop ==> http://liveusb.info/gtkdiaog/dag.tar.bz2
un exemple de progress ==> http://liveusb.info/gtkdiaog/progress.tar.bz2

Ouais va falloir que je décortique tout ça alors...
Le truc chiant c'est que j'ai pas vos icones donc ca deconne pas mal....

Sinon il reste des questions sans réponse big_smile

merci a vous et parlez en aux personnes qui se debrouillent bien avec ce logiciel ici smile

Dernière modification par Hizoka (Le 07/02/2009, à 10:19)

Hors ligne

#7 Le 07/02/2009, à 12:14

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

hbox & vbox
<hbox spacing="50">
<hbox width_request="200" height_request="200">

progress pulsate regarde exemple cité precedement...

tree ==> exported_column="3"
<tree exported_column="3">
et pour icon de tree ==> icon_column="0"
<input icon_column="0">
bon je me repete, mais des exemples pour ce genre de truc regarde/teste nos scripts, sont a base de tree...

icones installe au moins ==> gnome-icon-theme gnome-themes-extras

Hors ligne

#8 Le 07/02/2009, à 16:24

redisded

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Bonjour à tous,
tout d'abord, merci pour ce post sur gtkdialog.
Etant actuellement en train d'essayer de dompter la bète, j'essai, comme suggéré à plusieurs reprises, de décortiquer les exemples fournit dans la doc et vos différents scripts mais ce n'est pas toujours facile à décrypter; vos lumières seront donc les bienvenues wink

Concernant ce point :

AnsuzPeorth a écrit :

A savoir, gtkdialog n'accepte pas les fonctions (en tout cas sous ubuntu), il faut donc passer par des petits scripts pour contourner le problème. Le truc, c'est qu'on se retrouve vite avec beaucoup de fichiers (on peut les rassembler...!)

Pour éviter justement d'avoir 50 fichiers annexes, j'avais pensé à ecrire mon script de maniere a ce qu'il accepte les arguments (prévu pour d'autres fonctionnalité), et particulierement un argument qui renverrait vers une partie du scripts qui contient toutes les différentes actions à réaliser dans les balises actions (ex: --gtk), et qui ne seraient bien évidement pas réalisés lors de l'execution normale du script.
En gros, je declare toute mes fonctions dans une fonction principale, que j'appel par exemple main_function, puis lors de l'execution de mon prog gtkdialog, j'insere le script d'origine comme fichier de script (avec l'argument qui va bien).
Ensuite, dans ma balise action, il me suffirait d'appeler ./mon_script.sh --gtk "nom_de_la_fonction".

Pensez-vous que ce fonctionnement soit possible? Y voyez-vous des avantages/inconvénients que j'aurais manqués?
N'hesitez pas à me faire savoir si ma question nest pas claire.
Merci d'avance de vos avis éclairés,
cordialement,
Redisded.

Dernière modification par redisded (Le 07/02/2009, à 16:26)

Hors ligne

#9 Le 07/02/2009, à 16:44

AnsuzPeorth

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

redisded a écrit :

Pensez-vous que ce fonctionnement soit possible? Y voyez-vous des avantages/inconvénients que j'aurais manqués?

Personnellement, je fais pareil.
J'appelle mon script avec un argument pour qu'il fasse ce que je veux. Par contre, je ne rassemble que les petits script (boucle, check, etc,etc), je prefere laisser les differentes grosses parties bien séparées, ca facilite les modifications.... Enfin, ce n'est que mon avis, certainement que d'autres diront l'inverse, mais bon, chez moi, ca fonctionne bien comme ca !

appel du script

nom_du_script.sh <argument>

dans le script appelé

# on peut utiliser un case également
if [ $1 = <argument> ]; then
...
...

Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#10 Le 07/02/2009, à 16:45

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Salut,
pas de probleme c'est meme a mon avis la meilleure methode, j'ai fait comme ca pour lanceur.
tu met comme tu le dit dans ta balise action appel de ton script + arg et ca roule...

EDIT: huhu smile me suis fait griller

Dernière modification par frafa (Le 07/02/2009, à 16:48)

Hors ligne

#11 Le 07/02/2009, à 16:50

AnsuzPeorth

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

1 mn de retard...t'es pas sur le coup frafa ...!
smile


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#12 Le 07/02/2009, à 19:22

Hizoka

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

<tree exported_column="3">

Ca ne marche pas avec "ALL", y a un autre moyen de recuperer plusieurs sorties en meme temps ?

Dernière modification par Hizoka (Le 18/02/2009, à 10:05)

Hors ligne

#13 Le 07/02/2009, à 20:52

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

pas possible apparement, donc fo contourner tu rajoute une colone qui contiens tous les champs et tu exporte celle-la...
mais bon 1 valeur dans selection suffit normalement pour retrouver ce que tu veut si ton script le prevoit.

Hors ligne

#14 Le 08/02/2009, à 01:56

redisded

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Bonsoir,
merci à vous deux pour vos réonses; Je vais donc adopter ce mode de fonctionnement et suivre ce topci avec interet.
Merci également à hizoka pour le récapitulatif que je n'ai pour l'instant que survoler mais que je vais conserver précieusement.

Hors ligne

#15 Le 08/02/2009, à 09:36

Hizoka

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Y a moyen de cacher une colonne frafa ?

car je veux bien exporter une autre mais voila le genre de chose dont j'ai besoin :

tracks | 7 | subtitles | S_TEXT/UTF8 | ger

sachant qu'il me faut absolument la 1ere et 2e colonne.
il est bien evidemment possible de fusionner les 2 mais ca serait pas top...
c'est tres clair comme ca.
Alors si je pouvais cacher une colonne qui regrouperait les 2 premieres infos...

ou si tu as une autre idée...

merci

Hors ligne

#16 Le 08/02/2009, à 14:18

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

pas possible
moi je ferait genre tu rajoute un numero N°

N° | tracks | 7 | subtitles | S_TEXT/UTF8 | ger
tu rajoute un numero 1/2/3/... a chaque ligne de tree comme ca pas de probleme pour retrouver la bonne ligne et recuperer ce qui t'interesse...

Hors ligne

#17 Le 09/02/2009, à 15:21

Hizoka

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

J'ai casi fini mon script smile

me reste un petit probleme,

comment realiser une (des) actions apres la selection d'un fichier...

sachant que cela ne fonctionne pas...

<entry>
<variable>fichier_mkv</variable>					
</entry>
<button>
<input file icon="gtk-open"></input>
<action type="fileselect">fichier_mkv</action>
<action>MON ACTION</action>				
</button>

si on trouve comment faire, mon logiciel sera totalement terminé et fonctionnel, je pourrais donc utiliser cette experience pour le tuto smile

Dernière modification par Hizoka (Le 09/02/2009, à 15:22)

Hors ligne

#18 Le 09/02/2009, à 15:54

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

nous avons deja explique un peu plus haut comment utiliser action! ...
je recommence.

<entry>
<variable>fichier_mkv</variable>                   
</entry>
<button>
<input file icon="gtk-open"></input>
<action type="fileselect">fichier_mkv</action>
<action>/chemin/mesfonctions.sh MON_ACTION $fichier_mkv</action>               
</button>

et dans "/chemin/mesfonctions.sh"
tu met exemple lancer un file avec vlc:

#!/bin/bash
args="$@"
arg1="$1"
arg2="$2"
if [[ "$arg1" == "MON_ACTION" && "$arg2" ]] ; then
vlc "$(echo "$args" | sed "s%^MON_ACTION %%")"&
fi
exit 0

EDIT: Prend la peine de regarder de TRES près
/usr/share/doc/gtkdialog/examples/16.01.widget_signals

Dernière modification par frafa (Le 09/02/2009, à 16:07)

Hors ligne

#19 Le 09/02/2009, à 17:32

redisded

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Bonjour à tous,

frafa a écrit :

EDIT: Prend la peine de regarder de TRES près
/usr/share/doc/gtkdialog/examples/16.01.widget_signals

Cette documentation est en effet très interessante.
J'aimerai m'en servir pour afficher des infos sur le bouton survolé.
j'avais pensé introduire une fenetre avec une zone edit ou quelque chose du genre qui afficherait une brève info sur la zone survolé avec la souris.
Cependant, l'idéal serait de pouvoir afficher l'info directement sur le curseur de la souris, comme c'est le cas dans beaucoup d'applications (ex : si vous survolez avec votre souris la croix en haut à droite de firefox, le texte "fermer la fenetre" apparait).

Pensez-vous que cela soit possible?

Hors ligne

#20 Le 09/02/2009, à 17:49

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

==> redisded
Salut,
j'avait fait un essai dans ce sens , et zut est partis trash...
je refait des que j'ai un peu de temps.

mais de memoire j'avait cree une fenetre popup
sans bordure et utilisé le bon window_position="?"
me souviens pu du N°, et closewindow/launch sur un survol via action

Hors ligne

#21 Le 09/02/2009, à 18:58

redisded

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Merci à toi frafra, j'avais pensé à ca aussi, je vais voir dans ce sens.

J'en profite pour vous soumettre un petit pb :

le script suivant :

/usr/share/doc/gtkdialog/examples/07.02-list_actions

ne fonctionne pas chez moi (la fenetre ne se lance pas, et rien ne s'affiche dans le terminal).
J'ai éssayé de la modifier un peu pour voir mais je ne parvient pas à résoudre le pb.
En fait, le script fonctionne si on enleve la balise action; pourtant , celle-ci ne contient qu'un simple "echo Chosen item is $LIST".

Avez-vous une idée de pourquoi ca ne fonctionne pas, ou comment lancer des actions à partir d'un widget "list" dès que l'user clique dessus?

Dernière modification par redisded (Le 09/02/2009, à 18:58)

Hors ligne

#22 Le 09/02/2009, à 19:41

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

list action fait partie des truc(sss) bogé
utiliser tree

export MAIN_DIALOG='<vbox>
<tree rules_hint="true" exported_column="0">
<height>200</height><width>400</width>
<label>Files</label>
<item>111</item>
<item>222</item>
<variable>TREE</variable>
<action>echo Chosen item is $TREE</action>
</tree>
</vbox>'
gtkdialog --program=MAIN_DIALOG

et pour info survol fo killer le fenetre car apparement closewindow ferme po la bonne...

Hors ligne

#23 Le 09/02/2009, à 19:56

AnsuzPeorth

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

redisded a écrit :

.
J'aimerai m'en servir pour afficher des infos sur le bouton survolé.
j'avais pensé introduire une fenetre avec une zone edit ou quelque chose du genre qui afficherait une brève info sur la zone survolé avec la souris.
Cependant, l'idéal serait de pouvoir afficher l'info directement sur le curseur de la souris, comme c'est le cas dans beaucoup d'applications (ex : si vous survolez avec votre souris la croix en haut à droite de firefox, le texte "fermer la fenetre" apparait).

Pensez-vous que cela soit possible?

RE
La solution d'envoyer des infos dans une zone (entry par exemple) au survol, je l'utilise dans le script gwebradio (fenetre gerer) et le script tiroir application. ( on se répète peut etre, mais fait tourner nos scripts, tournes les dans tout les sens, tu trouveras tout ce qu'il faut, comme t'as deja dit frafa).
Si tu veux faire style infobulle, fait comme frafa t'as dit, créer un window sans décoration, et joue avec les signaux des widgets. Pour la "window_position" sous la souris c'est 2, 1 au centre, 0 en haut a gauche (gwebradio egalement)

redisded a écrit :

comment lancer des actions à partir d'un widget "list" dès que l'user clique dessus?

J'ai jamais testé les listes, vu que les tree font mieux leur travail, regarde n'importe quel de nos scripts et tu auras ta réponse
action signal="cursor_changed"


Je sais qu'à force de chercher, parfois on sature.....mais je me repete, cherche dans tout les exemples et tu auras tes reponses.

smile

edit:huhu, griller par frafa, en complement d'info, <action> au cul d'un tree fait l'action au double clic, <action signal="cursor_changed"> agit des la selection (simple clic)

Dernière modification par AnsuzPeorth (Le 09/02/2009, à 19:58)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#24 Le 09/02/2009, à 20:21

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

bon mon test de message au survol un peu different de la solution de AnsuzPeorth
a faire evoluer...

#! /bin/bash
#window_position="2"
export POPUP='<window window_position="1" decorated="false">
<vbox>
<text>
<input>cat /tmp/msgaafficher</input>
</text>
</vbox>
</window>'

export MAITRE='<window title="Test survol" icon-name="gtk-info">
<vbox>
<text>
<input>echo "Vouep bon c'\''est pas encore top\nmais bon...\navec 2 dans window_position est mieux,\nmais a mon avis ogligé de passer par include file pour fonction qui masque message...\n\na faire évoluer."</input>
</text>
<button>
<label>Essai de survol</label>
<action signal="enter-notify-event">echo "Texte à\nafficher" | tee /tmp/msgaafficher</action>
<action signal="enter-notify-event">sleep .1 && gtkdialog --program=POPUP&</action>
<action signal="leave-notify-event">kill $(ps ax | grep "gtkdialog --program=POPUP" | awk '\''{print $1}'\'' | grep -v grep | xargs)</action>
<action>kill $(ps ax | grep "gtkdialog --program=POPUP" | awk '\''{print $1}'\'' | grep -v grep | xargs)</action>
<action type="exit">exit</action>
</button>
</vbox>
<action signal="show">echo "" | tee /tmp/msgaafficher</action>
<action signal="hide">echo "" | tee /tmp/msgaafficher</action>
</window>'
gtkdialog --program=MAITRE
exit 0

Dernière modification par frafa (Le 09/02/2009, à 20:34)

Hors ligne

#25 Le 09/02/2009, à 20:47

frafa

Re : GTKDialog, infos, astuces pour reprendre en main le tuto !

Autre solution message suit pointeur
il aparrait au bout de 2 seconde au survol bouton avec c'te config:

#! /bin/bash
#window_position="2"
export POPUP='<window window_position="2" decorated="false">
<vbox>
<text>
<input>cat /tmp/msgaafficher</input>
</text>
</vbox>
</window>'

export MAITRE='<window title="Test survol" icon-name="gtk-info">
<vbox>
<text>
<input>echo "Vouep bon c'\''est pas encore top\nmais bon...\navec 2 dans window_position est mieux,\nmais a mon avis ogligé de passer par include file pour fonction qui masque message...\n\na faire évoluer."</input>
</text>
<button>
<label>Essai de survol</label>
<action signal="enter-notify-event">echo "Texte à\nafficher" | tee /tmp/msgaafficher && sleep 2 && gtkdialog --program=POPUP&</action>
<action signal="leave-notify-event">sleep 2 && kill $(ps ax | grep "gtkdialog --program=POPUP" | awk '\''{print $1}'\'' | grep -v grep | xargs)&</action>
<action>kill $(ps ax | grep "gtkdialog --program=POPUP" | awk '\''{print $1}'\'' | grep -v grep | xargs)</action>
<action type="exit">exit</action>
</button>
</vbox>
<action signal="show">echo "" | tee /tmp/msgaafficher</action>
<action signal="hide">echo "" | tee /tmp/msgaafficher</action>
</window>'
gtkdialog --program=MAITRE
exit 0

Hors ligne

Haut de page ↑