Gtkdialog: creeu interfícies gràfiques (GTK+) i quadres de diàleg mitjançant scripts de Shell a Linux


Gtkdialog (o gtkdialog) és una utilitat intel·ligent de codi obert per crear i construir interfícies i quadres de diàleg GTK+ amb l'ajuda de scripts de l'intèrpret d'ordres de Linux i utilitzant la biblioteca GTK, així com una sintaxi semblant a xml, que facilita la creació d'interfícies mitjançant gtkdialog. És molt semblant a l'eina més famosa anomenada Zenity, però inclou algunes funcions personalitzables útils que us permeten crear fàcilment molts ginys com vbox, hbox, botó, marc, text, menú i molt més.

Llegiu també: creeu quadres de diàleg gràfics GTK+ amb Zenity

Instal·lació de Gtkdialog a Linux

Podeu descarregar gtkdialog-0.8.3 (que és l'última versió) o també podeu utilitzar l'ordre wget, descomprimir el fitxer descarregat i executar aquestes ordres següents per compilar-les des de la font.

$ 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

Ara comencem a crear algunes caixes, creeu un nou script \myprogram a la vostra carpeta d'inici.

$ cd
$ touch myprogram

Ara obriu el fitxer \myprogram amb qualsevol editor de text que vulgueu i afegiu-hi el codi següent.

#!/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 
------------

Deseu el fitxer i configureu el permís d'execució i executeu-lo tal com es mostra.

$ chmod 755 myprogram
$ ./myprogram

Així és com es va crear i executar el vostre primer programa amb gtkdialog.

Ara, explicarem breument el codi.

  1. #!/bin/bash: la primera línia de qualsevol script d'intèrpret d'ordres, s'utilitza per especificar la ruta de l'intèrpret d'ordres de bash.
  2. GTKDIALOG = gtkdialog: aquí hem definit una variable per utilitzar-la més tard quan s'executa l'script de l'intèrpret d'ordres amb gtkdialog, aquesta línia ha d'estar en tots els scripts que creeu amb gtkdialog.
  3. exportar MAIN_DIALOG=: una altra variable que hem definit que contindrà tota la sintaxi de la nostra interfície, podeu substituir MAIN_DIALOG amb qualsevol nom que vulgueu, però l'heu de substituir també a les 4 últimes línies de la guió.
  4. Títol de la finestra: no crec que s'hagi d'explicar aquest codi, vam crear un títol, una icona per defecte per a la finestra, triem si era redimensionable o no i vam definir l'amplada i l'alçada que volem, per descomptat, totes aquestes opcions són secundàries, només podeu utilitzar l'etiqueta si voleu.
  5. : fem servir l'etiqueta vbox per crear un quadre vertical, és important crear una etiqueta vbox per contenir altres etiquetes com hbox i button, etc.
  6. : aquí hem creat un quadre horitzontal amb l'etiqueta , \space-fill i \space-expand són opcions per expandir la hbox a través de la finestra.
  7. : Aquest és el text predeterminat del botó, hem tancat l'etiqueta amb , per descomptat és molt important tancar totes les etiquetes que utilitzem.< /li>
  8. : Això passa quan es fa clic al botó, podeu executar una ordre de shell si voleu o executar qualsevol altre fitxer si voleu, també hi ha moltes altres accions i senyals. , no oblideu tancar-lo amb .
  9. : per tancar l'etiqueta del botó.
  10. : per tancar l'etiqueta hbox.
  11. : per tancar l'etiqueta de la finestra.

Les últimes 4 línies també han d'estar en tots els scripts d'intèrpret d'ordres que creeu amb gtkdialog, executen la variable MAIN_DIALOG mitjançant l'ordre gtkdialog amb l'opció –center per centrar la finestra, molt útil de fet.

De la mateixa manera, creeu un altre fitxer i anomeneu-lo com a segon programa i afegiu-hi tot el contingut següent.

#!/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

Deseu el fitxer, configureu-hi el permís d'execució i executeu-lo tal com es mostra.

$ chmod 755 secondprogram
$ ./secondprogram

Ara, explicarem breument el codi.

  1. Creem un widget combobox mitjançant , l'etiqueta és el nom predeterminat de la variable on s'emmagatzemarà l'element escollit, hem utilitzat aquesta variable per imprimir l'element seleccionat més tard mitjançant echo.
  2. és un separador horitzontal, podeu definir-ne l'amplada per defecte mitjançant l'opció de sol·licitud d'amplada.
  3. és un botó D'acord que tancarà la finestra just quan hi feu clic, és molt útil perquè no necessitem crear un botó personalitzat per fer-ho. això.

Creeu un altre fitxer anomenat tercer programa i afegiu-hi tot el codi.

#!/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

Deseu el fitxer, concediu permís d'execució i feu-lo com es mostra.

$ chmod 755 thirdprogram
$ ./thirdprogram

Aquí, l'explicació del codi de manera més detallada.

  1. Hem creat dues pestanyes de bloc de notes amb , l'opció de pestanya-etiqueta és on podeu crear pestanyes, gtkdialog crearà pestanyes en funció de les etiquetes que introduïu, cada es defineix com una pestanya, de manera que la primera pestanya comença amb la primera , la segona pestanya comença amb la segona .
  2. és un widget de text, hem utilitzat l'etiqueta
  3. L'etiqueta
  4. crearà un botó de rotació nou, l'opció range-min és el valor mínim i range-max és el valor màxim per al botó de rotació, range-value és el valor predeterminat per al botó de girar.
  5. Hem donat una variable myscale al .
  6. Vam imprimir el valor seleccionat mitjançant echo i $myscale variable, el senyal predeterminat de l'acció aquí és valor canviat, que ens va ajudar a fer-ho.

Aquesta era només una finestra d'exemple, podeu crear interfícies més complicades utilitzant gtkdialog si voleu, podeu navegar per la documentació oficial al lloc web de gtkdialog per veure totes les etiquetes de gtkdialog des de l'enllaç següent.

Documentació de Gtkdialog

Heu utilitzat abans gtkdialog per crear GUI per als vostres scripts d'intèrpret d'ordres? O heu utilitzat alguna utilitat d'aquest tipus per crear interfícies? Què en penses?