Gtkdialog - ലിനക്സിൽ ഷെൽ സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് ഗ്രാഫിക്കൽ (GTK+) ഇന്റർഫേസുകളും ഡയലോഗ് ബോക്സുകളും സൃഷ്ടിക്കുക
Gtkdialog (അല്ലെങ്കിൽ gtkdialog) ലിനക്സ് ഷെൽ സ്ക്രിപ്റ്റുകളുടെ സഹായത്തോടെയും GTK ലൈബ്രറി ഉപയോഗിച്ചും GTK+ ഇന്റർഫേസുകളും ഡയലോഗ് ബോക്സുകളും സൃഷ്ടിക്കുന്നതിനും നിർമ്മിക്കുന്നതിനുമുള്ള ഒരു ഓപ്പൺ സോഴ്സ് നിഫ്റ്റി യൂട്ടിലിറ്റിയാണ്, അതുപോലെ തന്നെ ഒരു xml പോലുള്ള വാക്യഘടനയും ഉപയോഗിക്കുന്നു. gtkdialog ഉപയോഗിച്ച് ഇന്റർഫേസുകൾ സൃഷ്ടിക്കുന്നത് എളുപ്പമാക്കുന്നു. ഇത് Zenity എന്ന് വിളിക്കപ്പെടുന്ന ഏറ്റവും പ്രശസ്തമായ ടൂളുമായി വളരെ സാമ്യമുള്ളതാണ്, എന്നാൽ vbox, hbox, ബട്ടൺ, ഫ്രെയിം, ടെക്uസ്uറ്റ്, മെനു തുടങ്ങി നിരവധി വിജറ്റുകൾ എളുപ്പത്തിൽ സൃഷ്uടിക്കാൻ നിങ്ങളെ പ്രാപ്uതമാക്കുന്ന ചില ഉപയോഗപ്രദമായ ഇഷ്uടാനുസൃതമാക്കാവുന്ന സവിശേഷതകളുമായാണ് ഇത് വരുന്നത്.
ഇതും വായിക്കുക : Zenity ഉപയോഗിച്ച് GTK+ ഗ്രാഫിക്കൽ ഡയലോഗ് ബോക്സുകൾ സൃഷ്ടിക്കുക
ലിനക്സിൽ Gtkdialog-ന്റെ ഇൻസ്റ്റലേഷൻ
നിങ്ങൾക്ക് gtkdialog-0.8.3 (ഏറ്റവും പുതിയ പതിപ്പാണ്) ഡൗൺലോഡ് ചെയ്യാം അല്ലെങ്കിൽ നിങ്ങൾക്ക് wget കമാൻഡ് ഉപയോഗിക്കാം, ഡൗൺലോഡ് ചെയ്uത ഫയൽ അൺപാക്ക് ചെയ്uത് ഉറവിടത്തിൽ നിന്ന് കംപൈൽ ചെയ്യുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക.
$ 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
ഇപ്പോൾ നമുക്ക് ചില ബോക്സുകൾ സൃഷ്ടിക്കാൻ തുടങ്ങാം, നിങ്ങളുടെ ഹോം ഫോൾഡറിൽ ഒരു പുതിയ \myprogram സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കുക.
$ cd $ touch myprogram
ഇപ്പോൾ നിങ്ങൾക്ക് ആവശ്യമുള്ള ഏതെങ്കിലും ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിച്ച് \myprogram ഫയൽ തുറന്ന് അതിൽ ഇനിപ്പറയുന്ന കോഡ് ചേർക്കുക.
#!/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 ------------
ഫയൽ സംരക്ഷിച്ച്, എക്സിക്യൂട്ട് പെർമിഷൻ സജ്ജീകരിച്ച് കാണിച്ചിരിക്കുന്നതുപോലെ പ്രവർത്തിപ്പിക്കുക.
$ chmod 755 myprogram $ ./myprogram
ഇങ്ങനെയാണ് gtkdialog ഉപയോഗിച്ച് നിങ്ങളുടെ ആദ്യ പ്രോഗ്രാം ഉണ്ടാക്കിയതും നടപ്പിലാക്കുന്നതും.
ഇപ്പോൾ, ഞങ്ങൾ കോഡ് ചുരുക്കത്തിൽ വിശദീകരിക്കും.
- #!/bin/bash: ഏത് ഷെൽ സ്uക്രിപ്റ്റിന്റെയും ആദ്യ വരി, അത് ബാഷ് ഷെൽ പാത്ത് വ്യക്തമാക്കാൻ ഉപയോഗിക്കുന്നു.
- GTKDIALOG = gtkdialog: gtkdialog ഉപയോഗിച്ച് ഷെൽ സ്uക്രിപ്റ്റ് എക്uസിക്യൂട്ട് ചെയ്യുമ്പോൾ അത് പിന്നീട് ഉപയോഗിക്കുന്നതിന് ഞങ്ങൾ ഒരു വേരിയബിൾ നിർവചിച്ചു, ഈ വരി നിങ്ങൾ gtkdialog ഉപയോഗിച്ച് സൃഷ്uടിക്കുന്ന എല്ലാ സ്uക്രിപ്റ്റുകളിലും ഉണ്ടായിരിക്കണം.
- കയറ്റുമതി MAIN_DIALOG=: ഞങ്ങളുടെ ഇന്റർഫേസിനുള്ള എല്ലാ വാക്യഘടനയും ഉൾക്കൊള്ളുന്ന മറ്റൊരു വേരിയബിൾ ഞങ്ങൾ നിർവചിച്ചിരിക്കുന്നു, നിങ്ങൾക്ക് MAIN_DIALOG-നെ ഏത് പേരു വേണമെങ്കിലും മാറ്റിസ്ഥാപിക്കാനാകും, എന്നാൽ നിങ്ങൾ അതിനെ അവസാന 4 വരികളിലും മാറ്റിസ്ഥാപിക്കേണ്ടതുണ്ട്. സ്ക്രിപ്റ്റ്.
- ജാലക ശീർഷകം: ഈ കോഡ് വിശദീകരിക്കേണ്ടതുണ്ടെന്ന് ഞാൻ കരുതുന്നില്ല, ഞങ്ങൾ ഒരു ശീർഷകം സൃഷ്uടിച്ചു, വിൻഡോയ്uക്കായി ഒരു സ്ഥിരസ്ഥിതി ഐക്കൺ സൃഷ്uടിച്ചു, വലുപ്പം മാറ്റാനാകുമോ ഇല്ലയോ എന്ന് ഞങ്ങൾ തിരഞ്ഞെടുക്കുന്നു, ഞങ്ങൾ നിർവചിച്ചു ഞങ്ങൾക്ക് ആവശ്യമുള്ള വീതിയും ഉയരവും, തീർച്ചയായും ആ ഓപ്uഷനുകളെല്ലാം ദ്വിതീയമാണ്, നിങ്ങൾക്ക് വേണമെങ്കിൽ
ടാഗ് ഉപയോഗിക്കാം. : ഒരു ലംബ ബോക്uസ് സൃഷ്uടിക്കുന്നതിന് ഞങ്ങൾ vbox ടാഗ് ഉപയോഗിക്കുന്നു, hbox, ബട്ടൺ മുതലായവ പോലുള്ള മറ്റ് ടാഗുകൾ അടങ്ങിയിരിക്കുന്നതിന് ഒരു vbox ടാഗ് സൃഷ്uടിക്കേണ്ടത് പ്രധാനമാണ്. : ഇവിടെ ഞങ്ങൾ ടാഗ് ഉപയോഗിച്ച് ഒരു തിരശ്ചീന ബോക്സ് സൃഷ്ടിച്ചു, \space-fill, \space-expand എന്നിവ ജാലകത്തിലൂടെ hbox വികസിപ്പിക്കുന്നതിനുള്ള ഓപ്ഷനുകളാണ്. - : ഒരു പുതിയ ബട്ടൺ സൃഷ്uടിക്കുക.
- : ഇതാണ് ബട്ടണിന്റെ സ്ഥിരസ്ഥിതി വാചകം, ഞങ്ങൾ ഉപയോഗിച്ച് ലേബൽ ടാഗ് അടച്ചു, തീർച്ചയായും ഞങ്ങൾ ഉപയോഗിക്കുന്ന എല്ലാ ടാഗുകളും അടയ്ക്കുന്നത് വളരെ പ്രധാനമാണ്.< /ലി>
: ബട്ടൺ ക്ലിക്കുചെയ്യുമ്പോൾ ഇത് സംഭവിക്കുന്നു, നിങ്ങൾക്ക് വേണമെങ്കിൽ ഷെൽ കമാൻഡ് പ്രവർത്തിപ്പിക്കാം അല്ലെങ്കിൽ നിങ്ങൾക്ക് വേണമെങ്കിൽ മറ്റേതെങ്കിലും ഫയൽ എക്സിക്യൂട്ട് ചെയ്യാം, മറ്റ് നിരവധി പ്രവർത്തനങ്ങളും സിഗ്നലുകളും ഉണ്ട്. , . ഉപയോഗിച്ച് ഇത് അടയ്ക്കാൻ മറക്കരുത് - : ബട്ടൺ ടാഗ് അടയ്ക്കുന്നതിന്.
- : hbox ടാഗ് അടയ്ക്കുന്നതിന്.
- : വിൻഡോ ടാഗ് അടയ്ക്കുന്നതിന്.
അവസാന 4 വരികൾ നിങ്ങൾ gtkdialog ഉപയോഗിച്ച് സൃഷ്ടിക്കുന്ന എല്ലാ ഷെൽ സ്uക്രിപ്റ്റുകളിലും ഉണ്ടായിരിക്കണം, അവ MAIN_DIALOG വേരിയബിൾ gtkdialog കമാൻഡ് ഉപയോഗിച്ച് ജാലകം കേന്ദ്രീകരിക്കുന്നതിനുള്ള -center ഓപ്ഷൻ ഉപയോഗിച്ച് എക്സിക്യൂട്ട് ചെയ്യുന്നു, വാസ്തവത്തിൽ വളരെ ഉപയോഗപ്രദമാണ്.
അതുപോലെ, മറ്റൊരു ഫയൽ സൃഷ്ടിച്ച് അതിനെ 'രണ്ടാംപ്രോഗ്രാം' എന്ന് വിളിക്കുകയും ഇനിപ്പറയുന്ന മുഴുവൻ ഉള്ളടക്കവും അതിൽ ചേർക്കുകയും ചെയ്യുക.
#!/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
ഫയൽ സേവ് ചെയ്യുക, അതിൽ എക്സിക്യൂട്ട് പെർമിഷൻ സജ്ജീകരിച്ച് കാണിച്ചിരിക്കുന്നതുപോലെ പ്രവർത്തിപ്പിക്കുക.
$ chmod 755 secondprogram $ ./secondprogram
ഇപ്പോൾ, ഞങ്ങൾ കോഡ് ചുരുക്കത്തിൽ വിശദീകരിക്കും.
- ഞങ്ങൾ
ഉപയോഗിച്ച് ഒരു കോംബോബോക്uസ് വിജറ്റ് സൃഷ്uടിക്കുന്നു, തിരഞ്ഞെടുത്ത ഇനം സംഭരിക്കുന്ന വേരിയബിളിന്റെ സ്ഥിരസ്ഥിതി നാമമാണ് <വേരിയബിൾ> ടാഗ്, തിരഞ്ഞെടുത്ത ഇനം പിന്നീട് എക്കോ ഉപയോഗിച്ച് പ്രിന്റ് ചെയ്യാൻ ഞങ്ങൾ ഈ വേരിയബിൾ ഉപയോഗിച്ചു. ഒരു തിരശ്ചീന സെപ്പറേറ്ററാണ്, വീതി-അഭ്യർത്ഥന ഓപ്ഷൻ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഡിഫോൾട്ട് വീതി സജ്ജമാക്കാൻ കഴിയും. - എന്നത് ഒരു OK ബട്ടണാണ്, അത് നിങ്ങൾ ക്ലിക്ക് ചെയ്യുമ്പോൾ തന്നെ വിൻഡോ അടയ്uക്കും, ഇത് വളരെ ഉപകാരപ്രദമായതിനാൽ ഞങ്ങൾ ഒരു ഇഷ്uടാനുസൃത ബട്ടൺ സൃഷ്uടിക്കേണ്ടതില്ല അത്.
'മൂന്നാംപ്രോഗ്രാം' എന്ന പേരിൽ മറ്റൊരു ഫയൽ സൃഷ്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
ഫയൽ സേവ് ചെയ്യുക, എക്സിക്യൂട്ട് പെർമിഷൻ നൽകുക, കാണിച്ചിരിക്കുന്നതുപോലെ ഫയർ ചെയ്യുക.
$ chmod 755 thirdprogram $ ./thirdprogram
ഇവിടെ, കൂടുതൽ വിശദമായ രീതിയിൽ കോഡിന്റെ വിശദീകരണം.
- ഞങ്ങൾ
ഉപയോഗിച്ച് രണ്ട് നോട്ട്ബുക്ക് ടാബുകൾ സൃഷ്ടിച്ചു, ടാബ്-ലേബൽ ഓപ്ഷനാണ് നിങ്ങൾക്ക് ടാബുകൾ സൃഷ്ടിക്കാൻ കഴിയുന്നത്, നിങ്ങൾ നൽകുന്ന ലേബലുകളെ ആശ്രയിച്ച് gtkdialog ടാബുകൾ സൃഷ്ടിക്കും, ഓരോ ഒരു ടാബായി നിർവചിച്ചിരിക്കുന്നു, അതിനാൽ ആദ്യത്തെ ടാബ് ആദ്യ ൽ ആരംഭിക്കുന്നു, രണ്ടാമത്തെ ടാബ് രണ്ടാമത്തെ ൽ ആരംഭിക്കുന്നു. ഒരു ടെക്uസ്uറ്റ് വിജറ്റാണ്, അതിനായി ഡിഫോൾട്ട് ടെക്uസ്uറ്റ് സജ്ജീകരിക്കാൻ ഞങ്ങൾ ടാഗ് ഒരു പുതിയ സ്പിൻ ബട്ടൺ സൃഷ്ടിക്കും, റേഞ്ച്-മിനിറ്റ് ഓപ്uഷനാണ് ഏറ്റവും കുറഞ്ഞ മൂല്യം, കൂടാതെ സ്uപിൻ ബട്ടണിന്റെ പരമാവധി മൂല്യം റേഞ്ച്-മാക്സ് ആണ്, ശ്രേണി-മൂല്യം സ്ഥിര മൂല്യമാണ് സ്പിൻ ബട്ടണിനായി. - ഞങ്ങൾ <സ്പിൻബട്ടണിന്> ഒരു വേരിയബിൾ “മൈസ്uകെയിൽ” നൽകി.
- ഞങ്ങൾ തിരഞ്ഞെടുത്ത മൂല്യം എക്കോയും $myscale വേരിയബിളും ഉപയോഗിച്ചാണ് പ്രിന്റ് ചെയ്uതത്, ഇവിടെ പ്രവർത്തനത്തിനുള്ള ഡിഫോൾട്ട് സിഗ്നൽ മൂല്യം മാറ്റി ആണ്, അത് ചെയ്യാൻ ഞങ്ങളെ സഹായിച്ചു.
ഇതൊരു ഉദാഹരണ വിൻഡോ മാത്രമായിരുന്നു, നിങ്ങൾക്ക് വേണമെങ്കിൽ gtkdialog ഉപയോഗിച്ച് കൂടുതൽ സങ്കീർണ്ണമായ ഇന്റർഫേസുകൾ സൃഷ്ടിക്കാൻ കഴിയും, താഴെയുള്ള ലിങ്കിൽ നിന്ന് എല്ലാ gtkdialog ടാഗുകളും കാണുന്നതിന് gtkdialog വെബ്സൈറ്റിലെ ഔദ്യോഗിക ഡോക്യുമെന്റേഷൻ ബ്രൗസ് ചെയ്യാം.
Gtkdialog ഡോക്യുമെന്റേഷൻ
നിങ്ങളുടെ ഷെൽ സ്ക്രിപ്റ്റുകൾക്കായി GUI-കൾ സൃഷ്ടിക്കാൻ നിങ്ങൾ മുമ്പ് gtkdialog ഉപയോഗിച്ചിട്ടുണ്ടോ? അല്ലെങ്കിൽ നിങ്ങൾ ഇന്റർഫേസുകൾ സൃഷ്ടിക്കാൻ അത്തരം ഏതെങ്കിലും യൂട്ടിലിറ്റി ഉപയോഗിച്ചിട്ടുണ്ടോ? അതിനെപ്പറ്റി നീ എന്താണു കരുത്തിയത്?