Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/02/2009, à 13:21

titi89

gtkdialog et combobox(résolu)

bonjour,
peut on charger un combobox par un fichier txt au lieu de cela:

<combobox>
      <variable>COMBO</variable>
      <item></item>
      <item>item1</item>
      <item>item2</item>
      <item>item3</item>
</combobox>

dans la doc il y a un truc du genre
<input>ls</input> mais comment cela fonctionne
j'ai essayé avec cat monfichier.txt ,monfichier.txt
mais cela ne marche pas
quelqu'un connait-il la solution?
merci

Dernière modification par titi89 (Le 16/02/2009, à 21:32)

Hors ligne

#2 Le 16/02/2009, à 20:32

frafa

Re : gtkdialog et combobox(résolu)

Salut
le input de combobox marche pas il fait parties de(s) truc(s) bogé(s)
je te donne une solution pour y palier:

#!/bin/bash
function COMBOBOX()
{
ls -A | while read line; do 
echo "<item>${line}</item>"
done
}
export MAIN_DIALOG="<vbox>
<hbox>
<text>
<label>value-in-list:</label>
</text>
<combobox case-sensitive=\"false\" value-in-list=\"true\">
<variable>COMBOBOX</variable>
$(COMBOBOX)
</combobox>
</hbox>
<hbox>
<button ok></button>
<button cancel></button>
</hbox>
</vbox>"
gtkdialog --program=MAIN_DIALOG
exit 0

Hors ligne

#3 Le 16/02/2009, à 21:31

titi89

Re : gtkdialog et combobox(résolu)

ok merci frafa
je ne risquais pas d'y arriver
j'avance doucement mais j'avance c'est le principal
@+

Hors ligne

#4 Le 17/02/2009, à 09:44

titi89

Re : gtkdialog et combobox(résolu)

en fait j'y arrive pas
j'ai mis résolu un peu vite wink
le script tel quel ne fonctionne pas chez moi
j'ai essayé en remplaçant les " par ' à l'ouverture et à la fin
j'ai supprimé la fonction le script ne se lance pas non plus
il ne se lance qu'en remplaçant <combobox case-sensitive=\"false\" value-in-list=\"true\">
par <combobox> et si je remet la fonction il ne se lance plus
si je comprend le code le combo devrait être rempli par la liste des fichiers présents dans le répertoire courant.
dans le cas d'un fichier txt
après mes recherches j'en déduit que je devrais modifier:

ls -A | while read line; do
echo "<item>${line}</item>"
done

par:

while read line; do
echo "<item>${line}</item>"
done < combo.txt  (là je suis vraiement pas sur wink )

est-ce que ton script doit fonctionner telquel?
merci
@+

Hors ligne

#5 Le 17/02/2009, à 11:31

frafa

Re : gtkdialog et combobox(résolu)

Oui l'exemple doit fonctionner tel quel
ta boucle while est juste

apres si tu integre l'exemple de combobox du premier post
il est imperatif de remplacer
export MAIN_DIALOG='codexml'
par
export MAIN_DIALOG="codexml"
et toute les doubles quote ==> " a l"interieur de codexml doivent etre remplacées par ==> \"
et toute les simples quote ==> ' a l"interieur de codexml doivent etre remplacées par ==> '\''

si tu ne t'en sort pas poste ton code...

Dernière modification par frafa (Le 17/02/2009, à 11:35)

Hors ligne

#6 Le 17/02/2009, à 14:49

titi89

Re : gtkdialog et combobox(résolu)

bonjour frafa
c'est ok cela fonctionne
je sais pas pourquoi cela ne se lançait pas ce matin.
encore merci à toi
j'essaye d'adapter dans mon script maintenant(ce soir)
@+

Hors ligne

#7 Le 17/02/2009, à 18:09

titi89

Re : gtkdialog et combobox(résolu)

bon j'ai essayé d'adapter mais mon script ne se lance plus
j'ai beau lire et relire je ne voit pas ce que j'ai oublié
désolé de t'embêter encore sad
je poste mon code modifié j'ai donc mis \ devant les " et \" derrière les ' ainsi que la fonction:
après modification j'ai remarqué que cette ligne ne se color pas comme avant:

\"$PARCELLE|$DATE|$INTERVENTION|$PRODUIT|$DOSE\"

#!/bin/sh
#VERSION 1.0
#Création des répertoires
if [ -d ~/MesTravaux ] #si le répertoire existe 
then
echo "Fait"
else
mkdir ~/MesTravaux
cd ~/MesTravaux
echo "parcelle|date|intervention|produit|dose" > mestravaux.txt
fi

function COMBOPARC()
{
while read line; do 
echo "<item>${line}</item>"
done < MesTravaux/parc.txt
}
 

###########AFFICHAGE###########
export MAIN_DIALOG="
<window title=\"Enregistrement de mes travaux\">
 <vbox>
<hbox>
<pixmap>
    <input file>/home/thierry/icones/2131-26990.png</input>
  </pixmap>

<frame>
<hbox>
<text>
<label>parcelle</label>
</text>
<combobox>
      <combobox case-sensitive=\"false\" value-in-list=\"true\">
      <variable>PARCELLE</variable>
      $(COMBOPARC)
</combobox>
</hbox>
 
<hbox>
<text>
<label>date</label>
</text>
<entry>
<variable>DATE</variable>
</entry>
<button>
<label>Effacer</label>
<action>clear:DATE</action>
</button>

</hbox>
 
<hbox>
<text>
<label>intervention</label>
</text>
<combobox>
      <variable>INTERVENTION</variable>
      <item></item>
      <item>engrais minéral</item>
      <item>engrais organique</item>
      <item>herbicide</item>
      <item>fongicide</item>
      <item>mollucide</item>
      <item>insecticide</item>
      <item>divers</item>
</combobox>

</hbox>
 
<hbox>
<text>
<label>produit</label>
</text>
<entry>
<variable>PRODUIT</variable>
</entry>
<button>
<label>Effacer</label>
<action>clear:PRODUIT</action>
</button>

</hbox>
 
<hbox>
<text>
<label>dose / ha</label>
</text>
<entry>
<variable>DOSE</variable>
</entry>
<button>
<label>Effacer</label>
<action>clear:DOSE</action>
</button>

</hbox>
<button>
<label>Enregistrer</label>
<input file icon=\"gtk-save\"></input>
<action>sed -i '\"/^$/d'\" MesTravaux/mestravaux.txt | echo \"$PARCELLE|$DATE|$INTERVENTION|$PRODUIT|$DOSE\" >> MesTravaux/mestravaux.txt &</action>
<action>refresh:LISTE</action>
</button>
<button>
<label>Récoltes</label>
<input file icon=\"gtk-info\"></input>
<action>./MesTravaux/recoltes.sh &</action>
</button>
<button>
<label>Afficher les travaux</label>
<input file icon=\"gtk-info\"></input>
<action>./MesTravaux/visuel.sh &</action>
</button>
<button>
<label>Affichage personnalisé de mes travaux</label>
<input file icon=\"gtk-info\"></input>
<action>./MesTravaux/visuel2.sh &</action>
</button>
</frame>
</hbox>
<hbox>

<button>
<label>Fermer la fenêtre</label>
<input file stock=\"gtk-close\"></input>
<action type=\"closewindow\">MAIN_DIALOG</action>
</button>

</hbox>
<tree>
		<label>Parcelle|Date|Intervention|Produit|Dose</label>

		<input>cat MesTravaux/mestravaux.txt</input>

		 

		<height>100</height><width>300</width>

		<variable>LISTE</variable>
	</tree>

</vbox>
</window>
"
gtkdialog --program MAIN_DIALOG

exit 0

bon je repars bosser et reviens ce soir
@+

Hors ligne

#8 Le 17/02/2009, à 18:25

frafa

Re : gtkdialog et combobox(résolu)

l'erreur n'est pas là ou tu la cherche smile
ce n'est pas un oubli, mais un doublon smile ...

<combobox>
      <combobox case-sensitive=\"false\" value-in-list=\"true\">

juste pour info enfin si te derange po de repondre, tu est agriculteur?

Dernière modification par frafa (Le 17/02/2009, à 18:28)

Hors ligne

#9 Le 17/02/2009, à 18:49

titi89

Re : gtkdialog et combobox(résolu)

oui et avec des vaches laitières tongue
c'est po fréquent ici wink
et comme il n'y a rien pour eux en programme j'essaye de m'y mettre quand  y fait pas beau c'est pas triste lol
"a coeur vaillant rien d'impossible" enfin faut y croire (très fort)
bon ce coup ci je pars aux vaches et je ressaye ce soir
merci
@+

Hors ligne

#10 Le 17/02/2009, à 21:18

titi89

Re : gtkdialog et combobox(résolu)

j'ai supprimer <combobox>
mais cela ne fonctionne toujours pas
il y a surement autre chose
je relis ,je relis ........
@+

Hors ligne

#11 Le 17/02/2009, à 23:19

frafa

Re : gtkdialog et combobox(résolu)

relit juste la premiere ligne, hein tu voit rien?
ben oui smile
j'avait juste testé par copier/coller du code dans un terminal
et ca marchait, je n'avait pas fait attention a l'entete de ton script , il est faux!
c'est du code bash
remplace:

#!/bin/sh

par

#!/bin/bash

et apres ca remarchera smile

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

Hors ligne

#12 Le 18/02/2009, à 00:35

frafa

Re : gtkdialog et combobox(résolu)

en fait il y avait d'autres erreurs
je te le livre corrigé:

#!/bin/bash
#VERSION 1.0

#Création des répertoires
if [ -d $HOME/MesTravaux ] #si le répertoire existe 
then
echo "Fait"
else
mkdir $HOME/MesTravaux
echo "parcelle|date|intervention|produit|dose" > $HOME/MesTravaux/mestravaux.txt
fi

function COMBOPARC()
{
while read line; do
echo "<item>${line}</item>"
done <$HOME/MesTravaux/parc.txt
}

export MAIN_DIALOG="<window title=\"Enregistrement de mes travaux\">
<vbox>
<hbox>
<pixmap>
<input file>$HOME/icones/2131-26990.png</input>
</pixmap>
<frame>
<hbox>
<text>
<label>parcelle</label>
</text>
<combobox case-sensitive=\"false\" value-in-list=\"true\">
<variable>PARCELLE</variable>
$(COMBOPARC)
</combobox>
</hbox>
<hbox>
<text>
<label>date</label>
</text>
<entry>
<variable>DATE</variable>
</entry>
<button>
<label>Effacer</label>
<action>clear:DATE</action>
</button>
</hbox>
<hbox>
<text>
<label>intervention</label>
</text>
<combobox>
<variable>INTERVENTION</variable>
<item></item>
<item>engrais minéral</item>
<item>engrais organique</item>
<item>herbicide</item>
<item>fongicide</item>
<item>mollucide</item>
<item>insecticide</item>
<item>divers</item>
</combobox>
</hbox>
<hbox>
<text>
<label>produit</label>
</text>
<entry>
<variable>PRODUIT</variable>
</entry>
<button>
<label>Effacer</label>
<action>clear:PRODUIT</action>
</button>
</hbox>
<hbox>
<text>
<label>dose / ha</label>
</text>
<entry>
<variable>DOSE</variable>
</entry>
<button>
<label>Effacer</label>
<action>clear:DOSE</action>
</button>
</hbox>
<button>
<label>Enregistrer</label>
<input file icon=\"gtk-save\"></input>
<action>sed -i \"/^$/d\" $HOME/MesTravaux/mestravaux.txt</action>
<action>echo \"\${PARCELLE}|\${DATE}|\${INTERVENTION}|\${PRODUIT}|\${DOSE}\" | tee -a $HOME/MesTravaux/mestravaux.txt</action>
<action>refresh:LISTE</action>
</button>
<button>
<label>Récoltes</label>
<input file icon=\"gtk-info\"></input>
<action>$HOME/MesTravaux/recoltes.sh &</action>
</button>
<button>
<label>Afficher les travaux</label>
<input file icon=\"gtk-info\"></input>
<action>$HOME/MesTravaux/visuel.sh &</action>
</button>
<button>
<label>Affichage personnalisé de mes travaux</label>
<input file icon=\"gtk-info\"></input>
<action>$HOME/MesTravaux/visuel2.sh &</action>
</button>
</frame>
</hbox>
<hbox>
<button>
<label>Fermer la fenêtre</label>
<input file stock=\"gtk-close\"></input>
<action type=\"closewindow\">MAIN_DIALOG</action>
</button>
</hbox>
<tree>
<label>Parcelle|Date|Intervention|Produit|Dose</label>
<input>cat $HOME/MesTravaux/mestravaux.txt</input>
<height>100</height><width>300</width>
<variable>LISTE</variable>
</tree>
</vbox>
</window>"
gtkdialog --program MAIN_DIALOG
exit 0

Dernière modification par frafa (Le 18/02/2009, à 00:41)

Hors ligne

#13 Le 18/02/2009, à 00:51

AnsuzPeorth

Re : gtkdialog et combobox(résolu)

Ca vaut bien 1 litre de lait ça.....

smile


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

Hors ligne

#14 Le 18/02/2009, à 09:17

titi89

Re : gtkdialog et combobox(résolu)

même avec un peu de chocolat wink et servi chaud
donc pour résumer faut aussi remplacer les ' par \" dans la commande pour effacer les lignes vides
et les variables faut mettre un \ et des {
ce coup-ci cela fonctionne
je continue mon apprentissage et promis j'essaye d'attendre au moins quelques minutes avant ma prochaine question vue qu'à première vue fait encore pas beau aujourd'hui lol
encore merci et à bientôt
@+

Hors ligne

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

Hizoka

Re : gtkdialog et combobox(résolu)

mmhhh

encore un truc interressant a savoir smile

j'ajoute a mon fichier pdf regroupant les infos de gtkdialog...

t'es trop fort frafa !

PS : pourquoi quand c'est moi qui demande on me repond pas ? lol

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


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#16 Le 18/02/2009, à 13:55

frafa

Re : gtkdialog et combobox(résolu)

==> Hizoka
je pense que tu as saisi mon absence temporaire du dit post
j'y reviendrais smile ++

==> titi89
quand tu fait avec simples quotes '
export MAIN_DIALOG='<codexml>'
toute les variables à l'interieur ne sont pas interprétées
car ' bloque toute interpretation, par contre si tu fait
export MAIN_DIALOG="<codexml>" la toute les variables seront interprétées
il faut donc bloquer leur interpretation avec antislash avant le $ ==> \$
si ces variables sont des variables gtkdialog.
Meuhhhhhhh smile

Exemple:

MEUH="Meuhhhhhhhhhhhhhhhhhhh"
echo 'MEUH:$MEUH'
echo "MEUH:$MEUH"
echo "MEUH:\$MEUH"

Dernière modification par frafa (Le 18/02/2009, à 14:02)

Hors ligne

#17 Le 18/02/2009, à 18:18

titi89

Re : gtkdialog et combobox(résolu)

Meuhhhhrci  frafa lol

Hors ligne

#18 Le 20/02/2009, à 16:04

titi89

Re : gtkdialog et combobox(résolu)

bonjour,
encore une petite question
si le fichier txt est modifié pendant l'utilisation du programme
comment fait-on pour relancer le chargement du combobox et le mettre à jour? sans avoir à relancer le programme.

merci
@+

Hors ligne

#19 Le 20/02/2009, à 16:17

frafa

Re : gtkdialog et combobox(résolu)

Salut,
combobox ne supporte pas refresh
la seule solution est de faire differement avec un tree qui supporte refresh
ou bien de remonter l'interface...

Hors ligne

#20 Le 20/02/2009, à 16:36

frafa

Re : gtkdialog et combobox(résolu)

Exemple
remplacer:

<combobox case-sensitive=\"false\" value-in-list=\"true\">
<variable>PARCELLE</variable>
$(COMBOPARC)
</combobox>

Par:

<tree stock=\"gtk-apply\" rules_hint=\"true\" exported_column=\"0\"  headers_visible=\"false\" hover_expand=\"true\">
<label>parcelle</label>
<input>cat $HOME/MesTravaux/parc.txt</input>
<variable>PARCELLE</variable>
<width>200</width><height>80</height>
<action signal=\"button-release-event\">echo PARCELLE:\$PARCELLE</action>
</tree>
<button>
<input file stock=\"gtk-refresh\"></input>
<action>refresh:PARCELLE</action>
</button>

Hors ligne

#21 Le 20/02/2009, à 17:34

titi89

Re : gtkdialog et combobox(résolu)

merci frafa
c'est ce que l'on appelle du service rapide
c'est nickel par contre quand je click sur le bouton raffraichir un petit icon vert "valider" apparait devant chaque item comme si ils étaient tous sélectionné.
j'ai eu peur
j'ai cru que tous les items allaient être retenus dans la variable mais après essai non.
cela donne de la joie dans ma fenêtre wink
encore merci
@+

Hors ligne

#22 Le 20/02/2009, à 17:48

frafa

Re : gtkdialog et combobox(résolu)

oui j'ai constaté, sans trop comprendre pourquoi icones ne sont pas affichées sans le refresh
si tu ne les veut pas supprime dans <tree ...>
stock=\"gtk-apply\"

Hors ligne

#23 Le 20/02/2009, à 18:01

AnsuzPeorth

Re : gtkdialog et combobox(résolu)

Ou faut rafraichir à l'ouverture de la fenetre (comme choix playlist dans gwebradio....), la window est montée en dernier, apres le tree,bouton, etc, etc

A mettre entre le dernier box et window

<action signal="show" type="refresh">PARCELLE</action>

Dernière modification par AnsuzPeorth (Le 20/02/2009, à 18:04)


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

Hors ligne

#24 Le 20/02/2009, à 18:32

titi89

Re : gtkdialog et combobox(résolu)

bonjour AnsuzPeorth
et merci à tous les deux
oui les icones sont montés au démarrage
dans mon cas :

<action signal=\"show\" type=\"refresh\">PARCELLE</action>

ça avance

@+

Hors ligne

#25 Le 20/02/2009, à 18:39

titi89

Re : gtkdialog et combobox(résolu)

une petite question pendant que vous êtes là
dans un edit
le input doit être impérativement sous la forme du chemin complet?
un $HOME/.... n'est pas reconnu?
ou y a t'il une syntaxe particulière?
merci

Hors ligne