Je veux construire une interface graphique simple pour une application qui utilise bash. Par exemple, si vous cliquez sur un bouton, certaines commandes bash, etc., sont exécutées.
Il y a un créateur d'interface graphique aussi simple, il ne me manque que des boutons et des zones de texte qui ne nécessitent pas d'apprendre un nouveau langage de programmation?
J'ai posté une réponse ici , cela peut être utile, pour plus de commodité, je vais simplement la mettre ici à nouveau.
Yad peut être utile à cet égard, c'est une fourchette de zenity avec plus de fonctionnalités, dont la possibilité de créer des formulaires.
Voici un exemple très simple de formulaire:
#!/bin/bash
frmdata=$(yad --title "Test Form" --form --field "Address" --field="Name")
frmaddr=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
frmname=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')
echo $frmaddr > test.txt
echo $frmname >> test.txt
Le script ci-dessus affichera un formulaire comme celui-ci:
Après avoir entré vos données et cliqué sur OK ou appuyé sur Entrée sur le clavier, les données de formulaire seront écrites dans un fichier texte appelé test.txt. J'utilise awk pour séparer les données de formulaire qui sont une chaîne avec un tube comme séparateur de champ, Je pense qu’il existe un moyen direct d’obtenir les données sans awk mais je ne suis pas un expert en yad. Veuillez vérifier le projet à la maison et poser des questions. Vous trouverez peut-être un moyen plus élégant.
Comment obtenir et installer yad ici:
http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html
yad project home:
plus d'exemples ici:
http://technostripe.com/yad-a-fork-of-zenity-with-more-features/
http://code.google.com/p/yad/wiki/Examples
Il n’existe pas encore de concepteur de formulaire, mais comme la syntaxe est si simple et si proche de la zenity, ce n’est généralement pas un problème.
Pour une saisie utilisateur simple, vous pouvez utiliser zenity
(vit dans le package zenity
.). Un exemple simple pourrait être quelque chose comme ceci:
VARIABLE=$(zenity --entry --title="Give me inputz" --text="Write some stuff")
echo $VARIABLE
Pour une zone de texte (comme nous le dirions dans le monde HTML), vous modifieriez la syntaxe de la manière suivante:
zenity --text-info --title="Give me inputz" --editable
Vous pouvez en savoir plus sur son manuel . C'est une petite entrée très flexible d'utilisateur de bibliothèque dans des scripts simples.
Edit: Vous pouvez aussi trouver quelques bons exemples sur Linuxaria .
Jetez un oeil à ceci: http://sites.google.com/site/easybashgui
Tu utilises:
source easybashgui
input 2 "Address" "?" "Name" "?"
cp "$dir_tmp/$file_tmp" "test.txt"
clean_temp
Essayez tkbash .
Vous pouvez spécifier des éléments comme celui-ci
tkbash 1 button b1 -x 0 -y 0 -w 100 -h 30 -t "click me" --command "notify-send hi"