Gtkdialog - Stvorite grafička (GTK+) sučelja i dijaloške okvire koristeći Shell skripte u Linuxu


Gtkdialog (ili gtkdialog) izvrstan je uslužni program otvorenog koda za stvaranje i izgradnju GTK+ sučelja i dijaloških okvira uz pomoć Linux shell skripti i korištenjem GTK biblioteke, kao i korištenjem sintakse slične xml-u, koja olakšava stvaranje sučelja koristeći gtkdialog. Mnogo je sličan najpoznatijem alatu koji se zove Zenity, ali dolazi s nekim korisnim prilagodljivim značajkama koje vam omogućuju jednostavno stvaranje mnogih widgeta kao što su vbox, hbox, gumb, okvir, tekst, izbornik i puno više.

Pročitajte također: Stvorite GTK+ grafičke dijaloške okvire koristeći Zenity

Instalacija Gtkdialoga u Linuxu

Možete preuzeti gtkdialog-0.8.3 (što je najnovija verzija) ili također možete koristiti naredbu wget, raspakirati preuzetu datoteku i pokrenuti sljedeće naredbe za kompajliranje iz izvora.

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

Sada počnimo stvarati neke okvire, stvorite novu skriptu “myprogram” u svojoj početnoj mapi.

Moj prvi program
cd
touch myprogram

Sada otvorite datoteku “myprogram” pomoću bilo kojeg uređivača teksta koji želite i dodajte joj sljedeći kod.

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

Spremite datoteku, postavite dopuštenje za izvršenje i pokrenite je kako je prikazano.

chmod 755 myprogram
./myprogram

Ovako je vaš prvi program kreiran i izveden pomoću gtkdialog.

Sada ćemo ukratko objasniti kod.

  1. #!/bin/bash: Prvi red bilo koje skripte ljuske, koristi se za određivanje staze bash ljuske.
  2. GTKDIALOG=gtkdialog: Ovdje smo definirali varijablu za kasnije korištenje pri izvršavanju skripte ljuske s gtkdialogom, ovaj red mora biti u svim skriptama koje stvorite pomoću gtkdialog.
  3. izvoz MAIN_DIALOG=: Još jedna varijabla koju smo definirali koja će sadržavati svu sintaksu za naše sučelje, možete zamijeniti MAIN_DIALOG bilo kojim imenom koje želite, ali ga morate zamijeniti iu zadnja 4 retka skripte.
  4. Naslov prozora: Mislim da ovaj kod ne treba objašnjavati, stvorili smo naslov, zadanu ikonu za prozor, odabrali možemo li promijeniti veličinu ili ne, definirali smo širinu i Visina koju želimo, naravno, sve te opcije su sekundarne, možete koristiti oznaku ako želite.
  5. : Koristimo vbox oznaku za stvaranje okomitog okvira, važno je stvoriti vbox oznaku kako bi sadržavala druge oznake kao što su hbox i gumb, itd.
  6. : Ovdje smo stvorili horizontalni okvir pomoću oznake, “space-fill” i “space-expand” su opcije za proširenje hbox-a kroz prozor.
  7. : Stvorite novi gumb.
  8. : Ovo je zadani tekst za gumb, zatvorili smo oznaku oznake pomoću , naravno vrlo je važno zatvoriti sve oznake koje koristimo.
  9. : Ovo se događa kada se klikne gumb, možete pokrenuti naredbu ljuske ako želite ili izvršiti bilo koju drugu datoteku ako želite, postoje i mnoge druge akcije i signali, nemojte ne zaboravite ga zatvoriti koristeći .
  10. : Za zatvaranje oznake gumba.
  11. : Za zatvaranje oznake hbox.
  12. : Za zatvaranje oznake prozora.

Posljednja 4 retka također moraju biti u svim skriptama ljuske koje kreirate koristeći gtkdialog, one izvršavaju varijablu MAIN_DIALOG pomoću naredbe gtkdialog s opcijom –center za centriranje prozora, što je zapravo vrlo korisno.

Moj drugi program

Na sličan način, stvorite drugu datoteku i nazovite je kao 'secondprogram' i dodajte joj cijeli sljedeći sadržaj.

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

Spremite datoteku, postavite dopuštenje za izvršenje na njoj i pokrenite je kao što je prikazano.

chmod 755 secondprogram
./secondprogram

Sada ćemo ukratko objasniti kod.

  1. Mi stvaramo combobox widget pomoću , oznaka je zadani naziv varijable u kojoj će odabrana stavka biti pohranjena, koristili smo ovu varijablu da kasnije ispišemo odabranu stavku koristeći echo.
  2. je horizontalni separator, možete postaviti zadanu širinu za njega pomoću opcije zahtjeva za širinu.
  3. je gumb OK koji će zatvoriti prozor čim ga kliknete, vrlo je koristan pa ne moramo izraditi prilagođeni gumb da bismo to učinili.
Moj Treći Prgoram

Napravite još jednu datoteku pod nazivom 'thirdprogram' i dodajte cijelu hrpu koda u nju.

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

Spremite datoteku, dajte dopuštenje za izvršenje i pokrenite je kao što je prikazano.

chmod 755 thirdprogram
./thirdprogram

Ovdje je objašnjenje koda na detaljniji način.

  1. Stvorili smo dvije kartice bilježnice pomoću , opcija tab-label je mjesto gdje možete kreirati kartice, gtkdialog će stvoriti kartice ovisno o oznakama koje unesete, svaki je definiran kao kartica, tako da prva kartica počinje s prvi , drugi tab počinje s drugim .
  2. je tekstualni widget, upotrijebili smo oznaku
  3. oznaka će stvoriti novi gumb za vrtnju, opcija range-min je minimalna vrijednost, a range-max je maksimalna vrijednost za gumb za vrtnju, range-value je zadana vrijednost za spin dugme.
  4. Dali smo varijablu “myscale” za .
  5. Ispisali smo odabranu vrijednost koristeći echo i varijablu $myscale, zadani signal za akciju ovdje je "promijenjena vrijednost" što nam je pomoglo u tome.

Ovo je bio samo primjer prozora, možete stvoriti kompliciranija sučelja koristeći gtkdialog ako želite, možete pretraživati službenu dokumentaciju na gtkdialog web stranici da vidite sve gtkdialog oznake na donjoj vezi.

Gtkdialog Dokumentacija

Jeste li prije koristili gtkdialog za stvaranje GUI-ja za svoje skripte ljuske? Ili ste koristili neki takav uslužni program za stvaranje sučelja? Što mislite o tome?