Gtkdialog - Luo graafisia (GTK+) liitäntöjä ja valintaikkunoita Shell-skriptien avulla Linuxissa


Gtkdialog (tai gtkdialog) on avoimen lähdekoodin näppärä apuohjelma GTK+ -liitäntöjen ja dialogilaatikoiden luomiseen ja rakentamiseen Linuxin komentotulkkikomentosarjan avulla ja GTK-kirjaston avulla sekä xml-tyyppisen syntaksin avulla, joka helpottaa käyttöliittymien luomista gtkdialogilla. Se on paljon samanlainen kuin tunnetuin Zenity-niminen työkalu, mutta sen mukana tulee hyödyllisiä muokattavia ominaisuuksia, joiden avulla voit helposti luoda monia widgetejä, kuten vbox, hbox, painike, kehys, teksti, valikko ja paljon muuta.

Lue myös : Luo GTK+ graafisia valintaikkunoita Zenityllä

Gtkdialogin asennus Linuxiin

Voit ladata gtkdialog-0.8.3 (joka on uusin versio) tai voit myös käyttää wget-komentoa, purkaa ladatun tiedoston ja suorittaa seuraavat komennot kääntääksesi lähteestä.

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

Aloitetaan nyt laatikoiden luominen, luo uusi "myprogram" -skripti kotikansioosi.

Ensimmäinen ohjelmani
cd
touch myprogram

Avaa nyt myprogram -tiedosto millä tahansa tekstieditorilla ja lisää siihen seuraava koodi.

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

Tallenna tiedosto ja aseta suoritusoikeus ja suorita se kuvan mukaisesti.

chmod 755 myprogram
./myprogram

Näin ensimmäinen ohjelmasi luotiin ja suoritettiin käyttämällä gtkdialogia.

Nyt selitämme koodin lyhyesti.

  1. #!/bin/bash: Minkä tahansa komentotulkkikomentosarjan ensimmäinen rivi, sitä käytetään määrittämään bash shell polku.
  2. GTKDIALOG=gtkdialog: Tässä määritimme muuttujan käytettäväksi sitä myöhemmin suoritettaessa komentotulkkikomentosarjaa gtkdialogilla. Tämän rivin on oltava kaikissa skripteissä, jotka luot gtkdialogilla.
  3. vienti MAIN_DIALOG=: Toinen määrittämämme muuttuja, joka sisältää käyttöliittymämme koko syntaksin. Voit korvata MAIN_DIALOG millä tahansa nimellä, mutta sinun on korvattava se myös skriptin 4 viimeisellä rivillä.
  4. Ikkunan otsikko: Mielestäni tätä koodia ei tarvitse selittää, loimme otsikon, oletuskuvakkeen ikkunalle, valitsemme, onko sen kokoa muutettava vai ei, ja määritimme leveyden ja Haluamme korkeuden, tietysti kaikki nuo vaihtoehdot ovat toissijaisia. Voit halutessasi käyttää -tunnistetta.
  5. : Käytämme vbox-tunnistetta pystysuoran laatikon luomiseen. On tärkeää luoda vbox-tunniste, jotta se sisältää muita tunnisteita, kuten hbox ja button jne.
  6. : Tässä loimme vaakalaatikon -tunnisteen avulla, "space-fill" ja "space-expand" ovat vaihtoehtoja hboxin laajentamiseen ikkunan läpi.
  7. <button>: Luo uusi painike.
  8. : Tämä on painikkeen oletusteksti, sulkimme etikettitunnisteen käyttämällä -toimintoa, tietysti on erittäin tärkeää sulkea kaikki käyttämämme tagit.
  9. : Tämä tapahtuu, kun painiketta napsautetaan, voit suorittaa shell-komennon, jos haluat tai suorittaa minkä tahansa muun tiedoston, jos haluat, on myös monia muita toimintoja ja signaaleja, älä Älä unohda sulkea sitä -komennolla.
  10. : Painiketunnisteen sulkeminen.
  11. : Sulje hbox-tunniste.
  12. : Ikkunatunnisteen sulkeminen.

Viimeisten neljän rivin on oltava myös kaikissa gtkdialogilla luomissasi komentosarjakirjoissa. Ne suorittavat MAIN_DIALOG-muuttujan käyttämällä gtkdialog-komentoa ja -center-valitsin keskittää ikkunan, mikä on itse asiassa erittäin hyödyllistä.

Toinen ohjelmani

Luo samalla tavalla toinen tiedosto ja kutsu sitä nimellä toinen ohjelma ja lisää siihen seuraava koko sisältö.

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

Tallenna tiedosto, aseta sille suoritusoikeus ja suorita se kuvan mukaisesti.

chmod 755 secondprogram
./secondprogram

Nyt selitämme koodin lyhyesti.

  1. Luomme combobox-widgetin :lla, -tunniste on oletusnimi sille muuttujalle, johon valittu kohde tallennetaan, tämän muuttujan avulla tulostettiin valitut kohteet myöhemmin echolla.
  2. on vaakasuuntainen erotin, voit asettaa sille oletusleveyden Leveyspyyntö-vaihtoehdolla.
  3. on OK-painike, joka sulkee ikkunan, kun napsautat sitä. Se on erittäin hyödyllinen, joten meidän ei tarvitse luoda mukautettua painiketta tehdäksesi sen.
Kolmas Prgoram

Luo toinen tiedosto nimeltä 'kolmas ohjelma' ja lisää siihen koko joukko koodia.

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

Tallenna tiedosto, myönnä suorituslupa ja käynnistä se kuvan mukaisesti.

chmod 755 thirdprogram
./thirdprogram

Tässä koodin selitys yksityiskohtaisemmin.

  1. Loimme kaksi muistikirjavälilehteä -sovelluksella. Tab-label-vaihtoehto on paikka, jossa voit luoda välilehtiä, gtkdialog luo välilehtiä syöttämiesi tarrojen mukaan, jokainen on määritetty välilehdeksi, joten ensimmäinen välilehti alkaa ensimmäinen , toinen välilehti alkaa toisella .
  2. on tekstiwidget, määritimme sille oletustekstin
  3. Tagi luo uuden pyöräytyspainikkeen, range-min-vaihtoehto on minimiarvo ja range-max on spin-painikkeen enimmäisarvo, range-value on pyöräytyksen oletusarvo -painiketta.
  4. Annoimme muuttujan "myscale" -painikkeelle.
  5. Tulostimme valitun arvon käyttämällä echoa ja $myscale-muuttujaa, toiminnon oletussignaali tässä on "arvo muutettu", mikä auttoi meitä tekemään sen.

Tämä oli vain esimerkkiikkuna, voit luoda monimutkaisempia käyttöliittymiä käyttämällä gtkdialogia, jos haluat, voit selata virallista dokumentaatiota gtkdialog-sivustolla nähdäksesi kaikki gtkdialog-tunnisteet alla olevasta linkistä.

Gtkdialog-dokumentaatio

Oletko aiemmin käyttänyt gtkdialogia GUI:iden luomiseen shell-skripteillesi? Vai oletko käyttänyt jotain tällaista apuohjelmaa rajapintojen luomiseen? Mitä mieltä olet siitä?