Gtkdialog - Graafiliste (GTK +) liideste ja dialoogibokside loomine Shelli skriptide abil Linuxis


Gtkdialog (või gtkdialog) on u200bu200bavatud lähtekoodiga utiliit GTK + liideste ja dialoogibokside loomiseks ja ehitamiseks Linuxi shelliskriptide abil ja GTK teegi kasutamiseks ning xml-laadse süntaksiga, mis muudab liideste loomise gtkdialogi abil lihtsaks. See on palju sarnane kõige kuulsama tööriistaga nimega Zenity, kuid sellel on mõned kasulikud kohandatavad funktsioonid, mis võimaldavad teil hõlpsasti luua palju vidinaid, nagu vbox, hbox, nupp, raam, tekst, menüü ja palju muud.

Loe ka : looge Zenity abil GTK + graafilised dialoogiboksid

Gtkdialogi installimine Linuxi

Võite alla laadida gtkdialog-0.8.3 (mis on uusim versioon) või võite kasutada ka käsku wget, pakkida allalaaditud fail lahti ja käivitada need järgmised käsud allikast kompileerimiseks.

$ 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

Alustame nüüd mõne kasti loomist, looge oma kodukataloogi uus\" minuprogrammi " skript.

$ cd
$ touch myprogram

Nüüd avage mis tahes soovitud tekstiredaktoriga fail\" minuprogramm " ja lisage sellele järgmine kood.

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

Salvestage fail, määrake täitmisluba ja käivitage see nagu näidatud.

$ chmod 755 myprogram
$ ./myprogram

Nii loodi ja käivitati teie esimene programm gtkdialogi abil.

Nüüd selgitame koodi lühidalt.

  1. #!/bin/bash : mis tahes shelliskripti esimene rida, seda kasutatakse bashi shellitee määramiseks.
  2. GTKDIALOG u003d gtkdialog : Siin määratlesime muutuja, et seda hiljem kasutada shelliskripti käivitamisel gtkdialogiga. See rida peab olema kõigis skriptides, mille olete loonud gtkdialogi abil.
  3. eksport MAIN_DIALOG u003d : Teine meie määratletud muutuja, mis sisaldab kogu meie liidese süntaksit, saate asendada MAIN_DIALOG mis tahes soovitud nimega, kuid peate selle asendama ka skript.
  4. Akna pealkiri : ma ei arva, et seda koodi oleks vaja selgitada, lõime pealkirja, akna vaikimisi ikooni, valime, kas selle suurust saab muuta või mitte, ja määratlesime soovitud laius ja kõrgus, muidugi on kõik need valikud teisejärgulised, kui soovite, võite lihtsalt kasutada märgendit .
  5. : vertikaalse kasti loomiseks kasutame vbox-märgendit. Oluline on luua vbox-märgend, et see sisaldaks muid silte, näiteks hbox ja button jne.
  6. : siin lõime horisontaalse kasti, kasutades silti ,\"space-fill" ja\"space-expand" on võimalused hboxi akna kaudu laiendamiseks.
  7. : looge uus nupp.
  8. , muidugi on väga oluline sulgeda kõik kasutatavad sildid.
  9. : see juhtub siis, kui nupul klõpsatakse. Võite käivitada shellikäsu, kui soovite, või käivitada mis tahes muu fail, kui soovite, lisaks on palju muid toiminguid ja signaale , ärge unustage seda sulgeda, kasutades .
  10. : nupu sildi sulgemiseks.
  11. : hbox-märgendi sulgemiseks.
  12. <> : aknasildi sulgemiseks.

Viimased 4 rida peavad olema ka kõigis shelliskriptides, mille loote kasutades gtkdialog, nad täidavad muutuja MAIN_DIALOG, kasutades käsku gtkdialog, akna keskendamiseks suvandiga –center, mis on tegelikult väga kasulik.

Samamoodi looge teine u200bu200bfail ja nimetage seda teiseks programmiks ning lisage sellele järgmine kogu sisu.

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

Salvestage fail, määrake sellel täitmisluba ja käivitage see nagu näidatud.

$ chmod 755 secondprogram
$ ./secondprogram

Nüüd selgitame koodi lühidalt.

  1. Loome komboboksi vidina, kasutades , silt on muutuja vaikenimi, millesse valitud üksus salvestatakse, selle muutuja abil kasutasime kaja abil valitud üksuse printimiseks hiljem.
  2. on horisontaalne eraldaja, saate selle vaikelaiuse määrata valiku width-request abil.
  3. on OK nupp, mis sulgeb akna just siis, kui sellel klõpsate, see on väga kasulik, nii et meil pole vaja selleks kohandatud nuppu luua et.

Looge teine u200bu200bfail nimega 'kolmas programm' ja lisage sellele kogu koodipakk.

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

Salvestage fail, andke täitmisluba ja käivitage see nagu näidatud.

$ chmod 755 thirdprogram
$ ./thirdprogram

Siin on koodi selgitus üksikasjalikumalt.

  1. Lõime kaks märkmiku vahelehte, kasutades , vahekaardi sildi valik on see, kus saate luua vahelehti, gtkdialog loob vahelehed sõltuvalt teie sisestatud siltidest, iga määratletakse vahelehena, nii et esimene vaheleht algab esimese -ga, teine u200bu200bvaheleht algab teise -ga.
  2. on tekstividin, selle vaiketeksti määramiseks kasutasime silti
  3. <> silt loob uue keeramisnupu, valik vahemik-min on minimaalne väärtus ja vahemik-max on pöörlemisnupu maksimaalne väärtus, vahemik-väärtus on vaikeväärtus pöörlemisnupu jaoks.
  4. Andsime muutuja “myscale” nupule .
  5. Trükkisime valitud väärtuse, kasutades kaja ja $myscale muutujat, siin on toimingu vaikesignaal väärtus "muudetud", mis aitas meil seda teha.

See oli vaid näiteaken. Soovi korral saate gtkdialogi abil luua keerukamaid liideseid. Võite sirvida gtkdialogi veebisaidi ametlikku dokumentatsiooni, et näha kõiki gtkdialogi silte allolevalt lingilt.

Gtkdialogi dokumentatsioon

Kas olete varem oma shelliskriptide jaoks GUI-de loomiseks kasutanud gtkdialog? Või kas olete liideste loomiseks mõnda sellist utiliiti kasutanud? Mis sa sellest arvad?