Gtkdialog - Paghimo Graphical (GTK+) Interfaces ug Dialog Boxes Gamit ang Shell Scripts sa Linux


Gtkdialog (o gtkdialog) kay usa ka open source nifty utility para sa paghimo ug pagtukod sa GTK+ Interfaces ug Dialog Boxes uban sa tabang sa Linux shell scripts ug paggamit sa GTK library, ingon man sa paggamit ug xml-like syntax, nga nagpasayon sa paghimo og mga interface gamit ang gtkdialog. Kini susama sa labing inila nga himan nga gitawag og Zenity, apan kini adunay pipila ka mapuslanon nga napasadya nga mga bahin nga makapahimo kanimo nga dali nga makahimo og daghang mga widget sama sa vbox, hbox, butones, frame, teksto, menu, ug daghan pa.

Basaha Usab : Paghimo GTK+ Graphical Dialog Boxes gamit ang Zenity

Pag-instalar sa Gtkdialog sa Linux

Mahimo nimong i-download ang gtkdialog-0.8.3 (nga mao ang pinakabag-o nga bersyon) o mahimo usab nimo gamiton ang wget command, i-unpack ang na-download nga file ug padagana kining mosunod nga mga sugo aron ma-compile gikan sa tinubdan.

$ 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

Karon magsugod kita paghimo og pipila ka mga kahon, paghimo og bag-ong \myprogram nga script sa imong home folder.

$ cd
$ touch myprogram

Karon ablihi ang \myprogram” file gamit ang bisan unsang text editor nga gusto nimo, ug idugang ang mosunod nga code niini.

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

I-save ang file, ug itakda ang pagtugot sa pagpatuman ug pagdagan kini ingon sa gipakita.

$ chmod 755 myprogram
$ ./myprogram

Mao kini ang paagi nga ang imong unang programa gibuhat ug gipatuman gamit ang gtkdialog.

Karon, atong ipasabut ang code sa mubo.

  1. #!/bin/bash: Ang unang linya sa bisan unsang shell script, kini gigamit sa pagtino sa bash shell path.
  2. GTKDIALOG = gtkdialog: Dinhi among gihubit ang usa ka variable aron magamit kini sa ulahi kung ipatuman ang script sa shell gamit ang gtkdialog, kini nga linya kinahanglan naa sa tanan nga mga script nga imong gihimo gamit ang gtkdialog.
  3. export MAIN_DIALOG=: Laing variable nga among gihubit nga maglangkob sa tanan nga syntax para sa among interface, mahimo nimong ilisan ang MAIN_DIALOG sa bisan unsang ngalan nga gusto nimo, apan kinahanglan nimo nga ilisan usab kini sa katapusang 4 ka linya sa script.
  4. Titulo sa Window: Sa akong hunahuna dili kinahanglan nga ipasabut kini nga code, naghimo kami usa ka titulo, usa ka default nga icon alang sa bintana, gipili namon kung kini mabag-o o dili, ug among gipasabut ang gilapdon ug gitas-on nga atong gusto, siyempre ang tanan nga mga kapilian kay ikaduha, mahimo nimong gamiton ang tag kung gusto nimo.
  5. : Gigamit namo ang vbox tag sa paghimo og vertical box, importante ang paghimo og vbox tag aron masulod ang ubang mga tag sama sa hbox ug button, ug uban pa.
  6. : Dinhi naghimo kami ug pinahigda nga kahon gamit ang tag, ang \space-fill ug \space-expand maoy mga opsyon sa pagpalapad sa hbox pinaagi sa bintana.
  7. : Kini ang default nga teksto para sa buton, among gisirhan ang label tag gamit ang , siyempre importante kaayo nga isira ang tanang tag nga among gigamit.< /li>
  8. : Kini ang mahitabo kung gi-klik ang buton, mahimo nimong ipadagan ang usa ka shell command kung gusto nimo o ipatuman ang bisan unsang ubang file kung gusto nimo, adunay daghang uban pang mga aksyon ug signal usab , ayaw kalimot pagsira niini gamit ang .
  9. : Aron isira ang button tag.
  10. : Aron isira ang hbox tag.
  11. : Aron isira ang window tag.

Ang katapusan nga 4 nga linya kinahanglan usab nga naa sa tanan nga mga script sa kabhang nga imong gihimo gamit ang gtkdialog, gipatuman nila ang variable nga MAIN_DIALOG gamit ang gtkdialog nga mando nga adunay kapilian nga -center aron masentro ang bintana, labi ka mapuslanon.

Sa susama, paghimo og laing file ug tawga kini nga 'secondprogram' ug idugang ang mosunod nga tibuok nga sulod niini.

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

I-save ang file, itakda ang pagtugot sa pagpatuman niini ug pagdagan kini ingon sa gipakita.

$ chmod 755 secondprogram
$ ./secondprogram

Karon, atong ipasabut ang code sa mubo.

  1. Naghimo kami og combobox widget gamit ang , ang tag mao ang default nga ngalan sa variable diin ang pinili nga butang itago, among gigamit kini nga variable aron maimprinta ang pinili nga butang sa ulahi gamit ang echo.
  2. Ang
  3. kay pinahigda nga separator, mahimo nimong itakda ang default nga gilapdon niini gamit ang opsyon sa width-request.
  4. kay usa ka OK nga buton nga magsira sa bintana kung imong i-klik kini, kini mapuslanon kaayo busa dili na kinahanglan nga maghimo kami usa ka naandan nga buton aron mahimo. nga.

Paghimo og laing file nga gitawag og 'thirdprogram' ug idugang ang tibuok hugpong sa code niini.

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

I-save ang file, hatagi ang pagtugot sa pagpatuman ug ipabuto kini ingon sa gipakita.

$ chmod 755 thirdprogram
$ ./thirdprogram

Dinhi, ang pagpatin-aw sa code sa mas detalyado nga paagi.

  1. Naghimo kami og duha ka tab sa notebook gamit ang , ang opsyon sa tab-label kung asa ka makahimo og mga tab, ang gtkdialog maghimo og mga tab depende sa mga label nga imong gisulod, ang matag gihubit isip tab, mao nga ang unang tab magsugod sa unang , ang ikaduhang tab magsugod sa ikaduhang .
  2. Ang
  3. usa ka widget sa teksto, among gigamit ang
  4. tag maghimo og bag-ong spin button, range-min option mao ang minimum nga bili, ug range-max ang pinakataas nga bili sa spin button, range-value ang default value para sa spin button.
  5. Naghatag kami ug variable nga “myscale” sa .
  6. Among giimprinta ang pinili nga bili gamit ang echo ug $myscale variable, ang default signal alang sa aksyon dinhi mao ang value-changed nga nakatabang kanamo sa pagbuhat niana.

Usa lang kini ka pananglitan nga bintana, makahimo ka og mas komplikado nga mga interface gamit ang gtkdialog kung gusto nimo, mahimo nimong i-browse ang opisyal nga dokumentasyon sa gtkdialog website aron makita ang tanang gtkdialog tag gikan sa link sa ubos.

Gtkdialog Documentation

Nakagamit ka na ba sa gtkdialog sa paghimo og mga GUI para sa imong mga script sa shell kaniadto? O gigamit ba nimo ang bisan unsang ingon nga gamit sa paghimo og mga interface? Unsay imong hunahuna bahin niini?