Gtkdialog - Unda Violesura vya Mchoro (GTK+) na Sanduku la Maongezi Kwa Kutumia Hati za Shell katika Linux


Gtkdialog (au gtkdialog) ni chanzo huria muhimu cha matumizi ya kuunda na kujenga Violesura vya GTK+ na Visanduku vya Maongezi kwa usaidizi wa hati za ganda la Linux na kutumia maktaba ya GTK, na pia kutumia sintaksia kama ya xml, ambayo hurahisisha kuunda miingiliano kwa kutumia gtkdialog. Inafanana sana na zana maarufu inayoitwa Zenity, lakini inakuja na vipengele vingine muhimu vinavyoweza kugeuzwa kukufaa vinavyokuwezesha kuunda wijeti nyingi kama vile vbox, hbox, kitufe, fremu, maandishi, menyu, na mengi zaidi.

Soma Pia : Unda GTK+ Graphical Dialog box kutumia Zenity

Ufungaji wa Gtkdialog katika Linux

Unaweza kupakua gtkdialog-0.8.3 (ambalo ni toleo la hivi punde) au unaweza pia kutumia wget amri, fungua faili iliyopakuliwa na utekeleze amri hizi zifuatazo ili kukusanya kutoka kwa chanzo.

$ 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

Sasa hebu tuanze kuunda baadhi ya visanduku, tuunde hati mpya ya \myprogram kwenye folda yako ya nyumbani.

$ cd
$ touch myprogram

Sasa fungua faili \myprogram kwa kutumia kihariri chochote cha maandishi unachotaka, na uongeze msimbo ufuatao kwake.

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

Hifadhi faili, na uweke ruhusa ya kutekeleza na uiendeshe kama inavyoonyeshwa.

$ chmod 755 myprogram
$ ./myprogram

Hivi ndivyo programu yako ya kwanza iliunda na kutekelezwa kwa kutumia gtkdialog.

Sasa, tutaelezea kanuni kwa ufupi.

  1. #!/bin/bash: Mstari wa kwanza wa hati yoyote ya ganda, hutumika kubainisha njia ya ganda la bash.
  2. GTKDIALOG = gtkdialog: Hapa tulifafanua kigezo cha kukitumia baadaye wakati wa kutekeleza hati ya ganda na gtkdialog, mstari huu lazima uwe katika hati zote unazounda kwa kutumia gtkdialog.
  3. export MAIN_DIALOG=: Kigezo kingine tulichofafanua ambacho kitakuwa na syntax zote za kiolesura chetu, unaweza kubadilisha MAIN_DIALOG kwa jina lolote unalotaka, lakini inabidi ubadilishe pia katika mistari 4 ya mwisho ya hati.
  4. Kichwa cha Dirisha: Sidhani kama msimbo huu unahitaji kuelezewa, tuliunda kichwa, ikoni chaguo-msingi ya dirisha, tunachagua ikiwa ingeweza kuongezwa ukubwa au la, na tukafafanua. upana na urefu tunaotaka, bila shaka chaguo zote hizo ni za pili, unaweza kutumia tu lebo ya ukitaka.
  5. : Tunatumia lebo ya vbox kuunda kisanduku wima, ni muhimu kuunda lebo ya vbox ili kuwa na lebo zingine kama vile hbox na kitufe, n.k.
  6. : Hapa tumeunda kisanduku mlalo kwa kutumia lebo ya , \space-fill na \space-pand ni chaguo za kupanua hbox kupitia dirisha.
  7. : Haya ndiyo maandishi chaguomsingi ya kitufe, tulifunga lebo kwa kutumia , bila shaka ni muhimu sana kufunga lebo zote tunazotumia.< /li>
  8. : Hiki ndicho kinachotokea wakati kitufe kinapobofya, unaweza kutekeleza amri ya ganda ukitaka au kutekeleza faili nyingine yoyote ukitaka, kuna vitendo na ishara nyingine nyingi pia. , usisahau kuifunga kwa kutumia .
  9. : Ili kufunga lebo ya kitufe.
  10. : Ili kufunga lebo ya hbox.
  11. : Ili kufunga lebo ya dirisha.

Laini 4 za mwisho lazima pia ziwe katika hati zote za ganda unazounda kwa kutumia gtkdialog, hutekeleza kigezo cha MAIN_DIALOG kwa kutumia gtkdialog amri na chaguo la -center kuweka katikati dirisha, ni muhimu sana kwa kweli.

Vile vile, unda faili nyingine na uiite kama 'programu ya pili' na uongeze maudhui yote yafuatayo kwake.

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

Hifadhi faili, weka ruhusa ya kutekeleza juu yake na uiendeshe kama inavyoonyeshwa.

$ chmod 755 secondprogram
$ ./secondprogram

Sasa, tutaelezea kanuni kwa ufupi.

  1. Tunaunda wijeti ya kisanduku cha kuchanganya kwa kutumia , lebo ya ni jina chaguo-msingi la kigezo ambacho kipengee kilichochaguliwa kitahifadhiwa, tulitumia kigezo hiki kuchapisha kipengee kilichochaguliwa baadaye kwa kutumia mwangwi.
  2. ni kitenganishi cha mlalo, unaweza kukiwekea upana chaguo-msingi kwa kutumia chaguo la ombi la upana.
  3. ni kitufe cha Sawa kitakachofunga dirisha unapokibofya tu, ni muhimu sana kwa hivyo hatuhitaji kuunda kitufe maalum ili kufanya. hiyo.

Unda faili nyingine inayoitwa 'thirdprogram' na uongeze rundo zima la msimbo kwake.

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

Hifadhi faili, toa ruhusa ya kutekeleza na uwashe moto kama inavyoonyeshwa.

$ chmod 755 thirdprogram
$ ./thirdprogram

Hapa, maelezo ya kanuni kwa mtindo wa kina zaidi.

  1. Tulitengeneza vichupo viwili vya daftari kwa kutumia , chaguo la lebo ya kichupo ni mahali unapoweza kuunda vichupo, gtkdialog itaunda vichupo kulingana na lebo utakazoingiza, kila inafafanuliwa kama kichupo, kwa hivyo kichupo cha kwanza. huanza na ya kwanza, kichupo cha pili kinaanza na cha pili.
  2. ni wijeti ya maandishi, tulitumia lebo kuweka maandishi chaguomsingi yake.
  3. tagi itaunda kitufe kipya cha kusokota, chaguo-punguza-punguza ni thamani ya chini zaidi, na upeo wa juu ndio thamani ya juu zaidi ya kitufe cha kusokota, thamani-fungu ndiyo thamani chaguomsingi. kwa kitufe cha kusokota.
  4. Tulitoa kigezo cha myscale kwa .
  5. Tulichapisha thamani iliyochaguliwa kwa kutumia mwangwi na utofauti wa $myscale, mawimbi chaguomsingi ya kitendo hapa ni kubadilishwa kwa thamani ambayo ilitusaidia kufanya hivyo.

Hili lilikuwa dirisha la mfano tu, unaweza kuunda miingiliano ngumu zaidi kwa kutumia gtkdialog ikiwa unataka, unaweza kuvinjari hati rasmi katika tovuti ya gtkdialog ili kutazama lebo zote za gtkdialog kutoka kwa kiungo kilicho hapa chini.

Nyaraka za Gtkdialog

Je! umetumia gtkdialog kuunda GUI za hati zako za ganda hapo awali? Au umetumia matumizi yoyote kama haya kuunda miingiliano? Unafikiri nini kuhusu hilo?