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.
- #!/bin/bash: L-ewwel linja ta' kwalunkwe script tal-qoxra, tintuża biex tispeċifika l-mogħdija tal-qoxra tal-bash.
- 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.
- 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.
- 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. : 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ċċ. : Hawnhekk ħloqna kaxxa orizzontali bl-użu tat-tikketta , \space-fill u \space-expand huma għażliet biex tespandi l-hbox mit-tieqa. - : Oħloq buttuna ġdida.
- : 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>
: 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 . - : Biex tagħlaq it-tikketta tal-buttuna.
- : Biex tagħlaq it-tikketta tal-hbox.
- : 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.
- 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. huwa separatur orizzontali, tista' tissettja l-wisa' default għaliha billi tuża l-għażla tal-wisa 'talba. - 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.
- Ħ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 . huwa widget tat-test, użajna t-tikketta 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. - Aħna tajna myscale varjabbli lill-
. - 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?