Gtkdialog - Opret grafiske (GTK +) grænseflader og dialogbokse ved hjælp af shell-scripts i Linux
Gtkdialog (eller gtkdialog) er et open source nifty-værktøj til oprettelse og opbygning af GTK + -grænseflader og dialogbokse ved hjælp af Linux-shell-scripts og brug af GTK-bibliotek samt brug af en xml-lignende syntaks, som gør det let at oprette grænseflader ved hjælp af gtkdialog. Det ligner meget det mest berømte værktøj kaldet Zenity, men det kommer med nogle nyttige tilpasselige funktioner, der giver dig mulighed for nemt at oprette mange widgets som vbox, hbox, knap, ramme, tekst, menu og meget mere.
Læs også : Opret GTK + grafiske dialogbokse ved hjælp af Zenity
Installation af Gtkdialog i Linux
Du kan downloade gtkdialog-0.8.3 (som er den nyeste version), eller du kan også bruge wget-kommandoen, pakke den downloadede fil ud og køre disse følgende kommandoer for at kompilere fra kilden.
$ 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
Lad os nu oprette nogle felter, oprette et nyt " mit program " script i din hjemmemappe.
$ cd $ touch myprogram
Åbn nu filen " mit program " ved hjælp af den ønskede teksteditor, og tilføj følgende kode til den.
#!/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 ------------
Gem filen, og indstil udførelsestilladelse, og kør den som vist.
$ chmod 755 myprogram $ ./myprogram
Sådan oprettes og udføres dit første program ved hjælp af gtkdialog.
Nu forklarer vi koden kort.
- #!/bin/bash : Den første linje i et hvilket som helst shell-script, det bruges til at specificere bash-shell-stien.
- GTKDIALOG = gtkdialog : Her definerede vi en variabel, der skal bruges senere, når shell-scriptet udføres med gtkdialog, denne linje skal være i alle scripts, du opretter ved hjælp af gtkdialog.
- eksport MAIN_DIALOG = : En anden variabel, som vi definerede, og som indeholder al syntaks til vores grænseflade, du kan erstatte MAIN_DIALOG med ethvert navn, du ønsker, men du skal også erstatte den i de sidste 4 linjer i script.
- Vinduetitel : Jeg tror ikke, at denne kode skal forklares, vi oprettede en titel, et standardikon for vinduet, vi vælger, om det kunne ændres eller ej, og vi definerede den bredde og højde, vi ønsker, selvfølgelig er alle disse muligheder sekundære, du kan bare bruge tagget
-tagget, "space-fill" og "space-expand" er muligheder for at udvide hbox gennem vinduet. - : Dette er standardteksten for knappen, vi lukkede etiketkoden ved hjælp af , selvfølgelig er det meget vigtigt at lukke alle de tags, vi bruger.
- : For at lukke knapkoden.
- : For at lukke hbox-tagget.
- : For at lukke vinduesmærket.
De sidste 4 linjer skal også være i alle shell-scripts, som du opretter ved hjælp af gtkdialog, de udfører MAIN_DIALOG-variablen ved hjælp af gtkdialog-kommandoen med muligheden –center for at centrere vinduet, meget nyttigt faktisk.
Tilsvarende skal du oprette en anden fil og kalde den som 'andet program' og tilføje følgende hele indhold til den.
#!/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
Gem filen, indstil eksekveringstilladelse på den, og kør den som vist.
$ chmod 755 secondprogram $ ./secondprogram
Nu forklarer vi koden kort.
- Vi opretter en kombinationsboks-widget ved hjælp af
, tagget er standardnavnet på variablen, som det valgte element gemmes i, vi brugte denne variabel til at udskrive det valgte element senere ved hjælp af ekko. -
Opret en anden fil, der hedder 'tredjeprogram', og tilføj hele koden med kode til den.
#!/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
Gem filen, tildel udfør tilladelse og affyr den som vist.
$ chmod 755 thirdprogram $ ./thirdprogram
Her forklaringen på koden på en mere detaljeret måde.
- Vi oprettede to notesbogsfaner ved hjælp af
, fanebladetiketten er, hvor du kan oprette faner, gtkdialog opretter faner afhængigt af de etiketter, du indtaster, hver er defineret som en fane, så den første fane starter med den første , den anden fane starter med den anden . - Vi gav en variabel "myscale" til
. - Vi udskrev den valgte værdi ved hjælp af ekko og $ myscale-variablen, standardsignalet for handlingen her er "værdiændret", hvilket hjalp os med at gøre det.
Dette var bare et eksempel på et vindue, du kan oprette mere komplicerede grænseflader ved hjælp af gtkdialog, hvis du vil, du kan gennemse den officielle dokumentation på gtkdialog-webstedet for at se alle gtkdialog-tags fra nedenstående link.
Gtkdialog-dokumentation
Har du brugt gtkdialog til at oprette GUI'er til dine shell-scripts før? Eller har du brugt et sådant værktøj til at oprette grænseflader? Hvad synes du om det?