Recherche de site Web

gtkdialog - Créer des interfaces graphiques (GTK+) et des boîtes de dialogue à l’aide de scripts shell sous Linux


Gtkdialog (ou gtkdialog) est un utilitaire open source astucieux pour créer et construire des interfaces et des boîtes de dialogue GTK+ à l’aide de scripts shell Linux et en utilisant la bibliothèque GTK, ainsi qu’en utilisant une syntaxe de type xml, qui facilite la création d’interfaces à l’aide de gtkdialog. Il est très similaire à l’outil le plus célèbre appelé Zenity, mais il est livré avec des fonctionnalités personnalisables utiles qui vous permettent de créer facilement de nombreux widgets tels que vbox, hbox, bouton, cadre, texte, menu, et bien plus encore.

Lire aussi : Créer des boîtes de dialogue graphiques GTK+ à l’aide de Zenity

Installation de gtkdialog sous Linux

Vous pouvez télécharger gtkdialog-0.8.3 (qui est la dernière version) ou vous pouvez également utiliser la commande wget, décompresser le fichier téléchargé et exécuter ces commandes suivantes pour compiler à partir des sources.

$ sudo apt-get install build-essential		[on Debian based systems]
# yum install gcc make gcc-c++			[on RedHat based systems]
$ wget https://gtkdialog.googlecode.com/files/gtkdialog-0.8.3.tar.gz
tar -xvf gtkdialog-0.8.3.tar.gz
cd gtkdialog-0.8.3/
./configure
make
sudo make install

Commençons maintenant à créer quelques boîtes, créez un nouveau script « myprogram » dans votre dossier personnel.

Mon premier programme
$ cd
touch myprogram

Ouvrez maintenant le fichier « myprogram » à l’aide de l’éditeur de texte de votre choix, et ajoutez-y le code suivant.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My First Program" icon-name="gtk-about" resizable="true" width-request="300" height-request="310"> 

<vbox> 
	<hbox space-fill="true" space-expand="true"> 
		<button>	 
			<label>Welcome to TecMint.com Home!</label> 
			<action>echo "Welcome to TecMint.com Home!"</action> 
		</button> 
	</hbox> 
</vbox> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac 
------------

Enregistrez le fichier, définissez l’autorisation d’exécution et exécutez-le comme indiqué.

$ chmod 755 myprogram
./myprogram

C’est ainsi que votre premier programme a été créé et exécuté à l’aide de gtkdialog.

Maintenant, nous allons expliquer le code en bref.

  1. # !/bin/bash : La première ligne de n’importe quel script shell, elle est utilisée pour spécifier le chemin du shell bash.
  2. GTKDIALOG=gtkdialog : Ici, nous avons défini une variable pour l’utiliser plus tard lors de l’exécution du script shell avec gtkdialog, cette ligne doit être dans tous les scripts que vous créez à l’aide de gtkdialog.
  3. export MAIN_DIALOG= : Une autre variable que nous avons définie qui contiendra toute la syntaxe de notre interface, vous pouvez MAIN_DIALOG remplacer par n’importe quel nom que vous voulez, mais vous devez également la remplacer dans les 4 dernières lignes du script.
  4. Titre de la fenêtre : Je ne pense pas qu’il soit nécessaire d’expliquer ce code, nous avons créé un titre, une icône par défaut pour la fenêtre, nous choisissons si elle était redimensionnable ou non, et nous avons défini la largeur et la hauteur que nous voulons, bien sûr toutes ces options sont secondaires, vous pouvez simplement utiliser la balise <window> si vous le souhaitez.
  5. <vbox> : On utilise la balise vbox pour créer une boîte verticale, il est important de créer une balise vbox afin de contenir d’autres balises telles que hbox et button, etc.
  6. <hbox> : Ici, nous avons créé une boîte horizontale en utilisant la balise <hbox>, « space-fill » et « space-expand » sont des options pour développer la hbox à travers la fenêtre.
  7. <button> : Créez un nouveau bouton.
  8. <label> : C’est le texte par défaut du bouton, nous avons fermé la balise d’étiquette à l’aide de </label>, bien sûr, il est très important de fermer toutes les balises que nous utilisons.
  9. <action> : C’est ce qui se passe lorsque le bouton est cliqué, vous pouvez exécuter une commande shell si vous le souhaitez ou exécuter n’importe quel autre fichier si vous le souhaitez, il y a beaucoup d’autres actions et signaux également, n’oubliez pas de le fermer à l’aide de </action>.
  10. </button> : Pour fermer la balise du bouton.
  11. </hbox> : Pour fermer la balise hbox.
  12. </window> : Pour fermer la balise window.

Les 4 dernières lignes doivent également être dans tous les scripts shell que vous créez à l’aide de gtkdialog, elles exécutent la variable MAIN_DIALOG à l’aide de la commande gtkdialog avec l’option –center pour centrer la fenêtre, très utile en fait.

Mon deuxième programme

De même, créez un autre fichier et appelez-le en tant que 'secondprogram' et ajoutez-y tout le contenu suivant.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My Second Program" icon-name="gtk-about" resizable="true" width-request="250" height-request="150"> 

<vbox> 
	<hbox space-fill="true"> 
		<combobox>	 
			<variable>myitem</variable> 
			<item>First One</item> 
			<item>Second One</item> 
			<item>Third One</item> 
		</combobox> 
	</hbox> 
	<hbox> 
		<button> 
			<label>Click Me</label> 
			<action>echo "You choosed $myitem"</action> 
		</button> 
	</hbox> 
<hseparator width-request="240"></hseparator> 

	<hbox> 
		<button ok></button> 
	</hbox> 
</vbox> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac

Enregistrez le fichier, définissez l’autorisation d’exécution sur celui-ci et exécutez-le comme indiqué.

$ chmod 755 secondprogram
./secondprogram

Maintenant, nous allons expliquer le code en bref.

  1. Nous créons un widget combobox en utilisant <combobox>, la balise <variable> est le nom par défaut de la variable dans laquelle l’élément choisi sera stocké, nous avons utilisé cette variable pour imprimer l’élément sélectionné plus tard en utilisant echo.
  2. <hseparator> est un séparateur horizontal, vous pouvez définir la largeur par défaut pour celui-ci à l’aide de l’option width-request.
  3. <button ok></button> est un bouton OK qui fermera la fenêtre juste au moment où vous cliquez dessus, il est très utile donc nous n’avons pas besoin de créer un bouton personnalisé pour le faire.
Mon troisième Prgoram

Créez un autre fichier appelé 'thirdprogram' et ajoutez-y tout le code.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My Second Program" icon-name="gtk-about" resizable="true" width-request="250" height-request="150"> 

<notebook tab-label="First | Second|"> 
<vbox> 
	<hbox space-fill="true"> 
		<combobox>	 
			<variable>myitem</variable> 
			<item>First One</item> 
			<item>Second One</item> 
			<item>Third One</item> 
		</combobox> 
	</hbox> 
	<hbox> 
		<button> 
			<label>Click Me</label> 
			<action>echo "You choosed $myitem"</action> 
		</button> 
	</hbox> 
<hseparator width-request="240"></hseparator> 

	<hbox> 
		<button ok></button> 
	</hbox> 
</vbox> 

<vbox> 

	<hbox space-fill="true"> 
		<text> 
		<label>Spinbutton </label> 
		</text> 
	</hbox> 

	<hbox space-fill="true" space-expand="true"> 
		<spinbutton range-min="0" range-max="100" range-value="4"> 
			<variable>myscale</variable> 
			<action>echo $myscale</action> 
		</spinbutton> 
	</hbox> 

	<hbox> 
		<button ok></button> 
	</hbox> 

</vbox> 
</notebook> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac

Enregistrez le fichier, accordez l’autorisation d’exécution et déclenchez-le comme indiqué.

$ chmod 755 thirdprogram
./thirdprogram

Ici, l’explication du code de manière plus détaillée.

  1. Nous avons créé deux onglets de notebook à l’aide de <notebook>, l’option tab-label est l’endroit où vous pouvez créer des onglets, gtkdialog créera des onglets en fonction des étiquettes que vous entrez, chaque <vbox> est défini comme un onglet, donc le premier onglet commence par le premier <vbox>, le deuxième onglet commence par le second <vbox>.
  2. <text> est un widget de texte, nous avons utilisé la balise <label> pour définir le texte par défaut de celui-ci.
  3. <spinbutton> créera un nouveau bouton de rotation, l’option range-min est la valeur minimale, et range-max est la valeur maximale pour le bouton de rotation, range-value est la valeur par défaut pour le bouton de rotation.
  4. Nous avons donné une variable « myscale » au <spinbutton>.
  5. Nous avons imprimé la valeur sélectionnée en utilisant echo et $myscale variable, le signal par défaut pour l’action ici est « value-changed », ce qui nous a aidés à le faire.

Ce n’était qu’un exemple de fenêtre, vous pouvez créer des interfaces plus compliquées en utilisant gtkdialog si vous le souhaitez, vous pouvez parcourir la documentation officielle sur le site Web de gtkdialog pour voir toutes les balises gtkdialog à partir du lien ci-dessous.

Documentation de Gtkdialog

Avez-vous déjà utilisé gtkdialog pour créer des interfaces graphiques pour vos scripts shell ? Ou avez-vous utilisé un tel utilitaire pour créer des interfaces ? Qu’en pensez-vous ?

Articles connexes: