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.

  1. #!/bin/bash : Den første linje i et hvilket som helst shell-script, det bruges til at specificere bash-shell-stien.
  2. 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.
  3. 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.
  4. 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 , hvis du vil.
  5. : Vi bruger vbox-koden til at oprette et lodret felt, det er vigtigt at oprette et vbox-tag for at indeholde andre tags, såsom hbox og knap osv.
  6. : Her oprettede vi en vandret boks ved hjælp af -tagget, "space-fill" og "space-expand" er muligheder for at udvide hbox gennem vinduet.
  7. : Opret en ny knap.
  8. : 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.
  9. : Dette sker, når der trykkes på knappen, du kan køre en shell-kommando, hvis du vil eller udføre en anden fil, hvis du vil, der er også mange andre handlinger og signaler , glem ikke at lukke det ved hjælp af .
  10. : For at lukke knapkoden.
  11. : For at lukke hbox-tagget.
  12. : 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.

  1. 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.
  2. er en vandret separator, du kan indstille standardbredden for den ved hjælp af mulighed for bredde-anmodning.
  3. er en OK knap, der lukker vinduet lige når du klikker på det, det er meget nyttigt, så vi behøver ikke at oprette en brugerdefineret knap til at gøre det.

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.

  1. 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 .
  2. er en tekstwidget, vi brugte
  3. -tag skaber en ny drejeknap, interval-min-indstilling er minimumsværdien, og rækkevidde-maks er den maksimale værdi for drejeknappen, rækkevidde er standardværdien til drejeknappen.
  4. Vi gav en variabel "myscale" til .
  5. 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?