Gtkdialog - Oħloq Interfaces Grafiċi (GTK+) u Kaxxi tad-Djalogu billi tuża Shell Scripts fil-Linux


Gtkdialog (jew gtkdialog) hija utilità nifty ta’ sors miftuħ għall-ħolqien u l-bini ta’ Interfaces u Kaxxi tad-Djalogu GTK+ bl-għajnuna ta’ scripts shell Linux u bl-użu ta’ librerija GTK, kif ukoll tuża sintassi bħal xml, li jagħmel faċli li toħloq interfaces bl-użu ta' gtkdialog. Huwa simili ħafna għall-għodda l-aktar famuża msejħa Zenity, iżda tiġi b'xi karatteristiċi personalizzabbli utli li jgħinuk faċilment toħloq ħafna widgets bħal vbox, hbox, buttuna, frame, test, menu, u ħafna aktar.

Aqra wkoll : Oħloq Kaxxi tad-Djalogu Grafiċi GTK+ billi tuża Zenity

Installazzjoni ta 'Gtkdialog fil-Linux

Tista' tniżżel gtkdialog-0.8.3 (li hija l-aħħar verżjoni) jew tista' wkoll tuża l-kmand wget, tħoll il-fajl imniżżel u tmexxi dawn il-kmandi li ġejjin biex tikkompila mis-sors.

$ 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

Issa ejja nibdew noħolqu xi kaxxi, oħloq skript ġdid \myprogram fil-folder tad-dar tiegħek.

$ cd
$ touch myprogram

Issa tiftaħ il-fajl \myprogram billi tuża kwalunkwe editur tat-test li trid, u żid miegħu l-kodiċi li ġej.

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

Issejvja l-fajl, u waqqaf il-permess ta 'eżekuzzjoni u mexxih kif muri.

$ chmod 755 myprogram
$ ./myprogram

Dan huwa kif l-ewwel programm tiegħek ħoloq u esegwit bl-użu ta 'gtkdialog.

Issa, se nispjegaw il-kodiċi fil-qosor.

  1. #!/bin/bash: L-ewwel linja ta' kwalunkwe script tal-qoxra, tintuża biex tispeċifika l-mogħdija tal-qoxra tal-bash.
  2. GTKDIALOG = gtkdialog: Hawnhekk iddefinijna varjabbli biex nużawha aktar tard meta tesegwixxi l-iskript tal-qoxra b'gtkdialog, din il-linja trid tkun fl-iskripts kollha li inti toħloq billi tuża gtkdialog.
  3. esportazzjoni MAIN_DIALOG=: Varjabbli oħra li ddefinijna li se jkun fiha s-sintassi kollha għall-interface tagħna, tista’ tissostitwixxi MAIN_DIALOG bi kwalunkwe isem li trid, imma trid tissostitwiha wkoll fl-aħħar 4 linji tal- skript.
  4. Titlu tat-Tieqa: Ma naħsibx li dan il-kodiċi jeħtieġ li jiġi spjegat, ħloqna titolu, ikona awtomatika għat-tieqa, nagħżlu jekk kienx jista' jvarja jew le, u ddefinijna il-wisa 'u l-għoli li rridu, ovvjament dawk l-għażliet kollha huma sekondarji, tista' tuża biss it-tikketta jekk trid.
  5. : Aħna nużaw it-tikketta vbox biex noħolqu kaxxa vertikali, huwa importanti li tinħoloq tag vbox sabiex ikun fiha tikketti oħra bħal hbox u buttuna, eċċ.
  6. : Hawnhekk ħloqna kaxxa orizzontali bl-użu tat-tikketta , \space-fill u \space-expand huma għażliet biex tespandi l-hbox mit-tieqa.
  7. : Dan huwa t-test default għall-buttuna, għalaqna t-tikketta tat-tikketta billi tuża , ovvjament huwa importanti ħafna li nagħlqu t-tags kollha li nużaw.< /li>
  8. : Dan x'jiġri meta tikklikkja l-buttuna, tista' tmexxi kmand tal-qoxra jekk trid jew tesegwixxi kwalunkwe fajl ieħor jekk trid, hemm ħafna azzjonijiet u sinjali oħra wkoll , tinsiex tagħlaqha billi tuża .
  9. : Biex tagħlaq it-tikketta tal-buttuna.
  10. : Biex tagħlaq it-tikketta tal-hbox.
  11. : Biex tagħlaq it-tikketta tat-tieqa.

L-aħħar 4 linji għandhom ikunu wkoll fl-iskripts tal-qoxra kollha li inti toħloq bl-użu ta 'gtkdialog, huma jesegwixxu l-varjabbli MAIN_DIALOG bl-użu tal-kmand ta' gtkdialog bl-għażla –center biex tiċċentra t-tieqa, utli ħafna fil-fatt.

Bl-istess mod, oħloq fajl ieħor u sejjaħlu bħala 'tieni programm' u żid miegħu l-kontenut kollu li ġej.

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

Issejvja l-fajl, issettja l-permess ta 'eżekuzzjoni fuqu u mexxih kif muri.

$ chmod 755 secondprogram
$ ./secondprogram

Issa, se nispjegaw il-kodiċi fil-qosor.

  1. Aħna noħolqu widget combobox bl-użu ta' , it-tikketta hija l-isem default tal-varjabbli li fiha l-oġġett magħżul se jinħażen, użajna din il-varjabbli biex nipprintjaw l-oġġett magħżul aktar tard billi tuża echo.
  2. huwa separatur orizzontali, tista' tissettja l-wisa' default għaliha billi tuża l-għażla tal-wisa 'talba.
  3. hija buttuna OK li se tagħlaq it-tieqa eżatt meta tikklikkjaha, hija utli ħafna u għalhekk m'għandniex bżonn noħolqu buttuna apposta biex nagħmlu dak.

Oħloq fajl ieħor imsejjaħ thirdprogram u żid il-mazz kollu ta 'kodiċi miegħu.

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

Issejvja l-fajl, agħti permess ta 'eżekuzzjoni u sparah kif muri.

$ chmod 755 thirdprogram
$ ./thirdprogram

Hawnhekk, l-ispjegazzjoni tal-kodiċi b'mod aktar dettaljat.

  1. Ħloqna żewġ tabs ta' notebook bl-użu ta' , l-għażla tab-label hija fejn tista' toħloq tabs, gtkdialog se toħloq tabs skont it-tikketti li ddaħħal, kull hija definita bħala tab, għalhekk l-ewwel tab jibda bl-ewwel , it-tieni tab jibda bit-tieni .
  2. huwa widget tat-test, użajna t-tikketta
  3. it-tikketta se toħloq buttuna spin ġdida, l-għażla range-min hija l-valur minimu, u range-max huwa l-valur massimu għall-buttuna spin, range-value huwa l-valur default għall-buttuna spin.
  4. Aħna tajna myscale varjabbli lill-.
  5. Istampajna l-valur magħżul bl-użu ta' echo u $myscale varjabbli, is-sinjal default għall-azzjoni hawnhekk huwa valur mibdul li għenna nagħmlu dan.

Din kienet biss tieqa eżempju, tista 'toħloq interfaces aktar ikkumplikati billi tuża gtkdialog jekk trid, tista' tfittex id-dokumentazzjoni uffiċjali fil-websajt ta 'gtkdialog biex tara t-tikketti kollha ta' gtkdialog mill-link hawn taħt.

Dokumentazzjoni Gtkdialog

Użajt gtkdialog biex toħloq GUIs għall-iskripts tal-qoxra tiegħek qabel? Jew użajt xi utilità bħal din biex toħloq interfaces? X'taħseb dwarha?