Recherche de site Web

Zenity - Crée des boîtes de dialogue graphiques (GTK+) dans les scripts de ligne de commande et Shell


GNU Linux, le système d'exploitation construit sur un noyau très puissant appelé Linux. Linux est célèbre pour ses opérations en ligne de commande. Avec l'invention de Linux dans l'informatique quotidienne et de bureau, nix ne reste plus orienté vers la ligne de commande, il est également graphique et développer une application graphique ne reste plus une tâche difficile.

Ici, dans cet article, nous discuterons de la création et de l'exécution d'une boîte de dialogue graphique simple à l'aide de l'application GTK+ appelée « Zenity ».

Qu’est-ce que Zenity ?

Zenity est une application open source et multiplateforme qui affiche les boîtes de dialogue GTK+ en ligne de commande et à l'aide de scripts shell. Il permet de demander et de présenter des informations vers/depuis le shell dans des boîtes graphiques. L'application vous permet de créer des boîtes de dialogue graphiques en ligne de commande et rend l'interaction entre l'utilisateur et le shell très simple.

Il existe d'autres alternatives, mais rien n'est comparable à la simplicité de Zenity, surtout lorsque vous n'avez pas besoin d'une programmation complexe. Zenity, un outil sur lequel vous devez avoir la main.

Fonctionnalités Zenity

  1. Logiciel libre
  2. Application multiplateforme
  3. Autoriser l'exécution de la boîte de dialogue GTK+
  4. Outil de ligne de commande
  5. Prise en charge des scripts Shell

Utilité

  1. Création facile d'une interface graphique
  2. Moins de fonctionnalités que d'autres outils complexes
  3. Permet aux scripts shell d'interagir avec les utilisateurs d'une interface graphique
  4. La création de boîtes de dialogue simples est possible pour l'interaction graphique de l'utilisateur

Étant donné que Zenity est disponible pour toutes les principales plates-formes connues et qu'il est basé sur la bibliothèque GTK+, le programme Zenity peut être porté vers/depuis une autre plate-forme.

Installation de Zenity sous Linux

Zentity est installé par défaut ou disponible dans le référentiel de la plupart des distributions Linux standard actuelles. Vous pouvez vérifier s'il est installé sur votre ordinateur ou non en exécutant les commandes suivantes.

ravisaive@tecmint:~$ zenity --version 

3.8.0
ravisaive@tecmint:~$ whereis zenity 

zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

S'il n'est pas installé, vous pouvez l'installer à l'aide de la commande Apt ou Yum comme indiqué ci-dessous.

ravisaive@tecmint:~$ sudo apt-get install zenity		[on Debian based systems]

root@tecmint:~# yum install zenity				[on RedHat based systems]

De plus, vous pouvez également le construire à partir des fichiers sources, télécharger le dernier package source Zenity (c'est-à-dire la version actuelle 3.8) en utilisant le lien suivant.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Boîtes de dialogue Zenity Basic

Certaines des boîtes de dialogue de base de Zenity, qui peuvent être invoquées directement depuis la ligne de commande.

1. Que diriez-vous d'une boîte de dialogue rapide sur le calendrier ?
root@tecmint:~# zenity --calendar

2. Une boîte de dialogue d'erreur
root@tecmint:~# zenity --error

3. Une boîte de dialogue de saisie de texte générale
root@tecmint:~# zenity --entry

4. Une boîte de dialogue d'informations
root@tecmint:~# zenity --info

5. Une boîte de dialogue de question
root@tecmint:~# zenity --question

6. Une barre de progression
root@tecmint:~# zenity --progress

7. Boîte de dialogue Échelle
root@tecmint:~# zenity --scale

8. Une boîte de dialogue de mot de passe
root@tecmint:~# zenity --password

9. Une boîte de dialogue de formulaire
root@tecmint:~# zenity --forms

10. Une boîte de dialogue à propos
root@tecmint:~# zenity --about

Boîte de dialogue Créer un script Shell

Nous allons maintenant discuter ici de la création de Zenity Dialog à l'aide de simples scripts shell. Bien que nous puissions créer une seule boîte de dialogue en exécutant des commandes Zenity directement à partir du shell (comme nous l'avons fait ci-dessus), nous ne pouvons pas lier deux boîtes de dialogue afin d'obtenir un résultat significatif.

Que diriez-vous d'une boîte de dialogue interactive qui prend en compte vos commentaires et affiche le résultat.

#!/bin/bash 
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) 
zenity --info --title="Welcome" --text="Mr./Ms. $first" 
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) 
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Enregistrez-le dans « anything.sh » (de manière conventionnelle) et n'oubliez pas de le rendre exécutable. Définissez l'autorisation 755 sur le fichier anything.sh et exécutez le script.

root@tecmint:~# chmod 755 anything.sh 
root@tecmint:~# sh anything.sh

À propos de la description des scripts

Le shebang conventionnel alias hashbang

#!/bin/bash

Dans la ligne ci-dessous, « first » est une variable et la valeur de la variable est générée au moment de l'exécution.

    1. « –entry » signifie que Zenity est invité à générer une zone de saisie de texte.
    2. '– title=' définit le titre de la zone de texte générée.
    3. '—text=' définit le texte disponible dans la zone de saisie de texte.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

Cette ligne du fichier de script ci-dessous est destinée à la génération de la boîte de dialogue Informations (-info), avec le titre « Bienvenue » et le texte « M./Mme.premier »

zenity --info --title="Welcome" --text="Mr./Ms. $first"

Cette ligne du script est similaire à la ligne numéro deux du script, sauf qu'ici une nouvelle variable « last » est définie.

last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

Cette dernière ligne du script est encore une fois similaire à la troisième ligne du script et génère une boîte de dialogue d'informations qui contient à la fois les variables « $first » et « $last ».

zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Pour plus d'informations sur la création de boîtes de dialogue personnalisées à l'aide d'un script shell, visitez la page de référence suivante Zenity.

  1. https://help.gnome.org/users/zenity/stable/

Dans le prochain article, nous intégrerions Zenity avec davantage de scripts shell pour l'interaction utilisateur GUI. D'ici là, restez à l'écoute et connecté à Tecmint. N'oubliez pas de donner vos précieux commentaires dans la section commentaires.