Vyhledávání na webu

Gtkdialog – Vytváření grafických (GTK+) rozhraní a dialogových oken pomocí skriptů Shell v Linuxu


Gtkdialog (nebo gtkdialog) je šikovná utilita s otevřeným zdrojovým kódem pro vytváření a vytváření rozhraní a dialogových oken GTK+ s pomocí skriptů prostředí Linux a pomocí knihovny GTK a také pomocí syntaxe podobné xml, která usnadňuje vytváření rozhraní pomocí gtkdialog. Je hodně podobný nejslavnějšímu nástroji zvanému Zenity, ale přichází s některými užitečnými přizpůsobitelnými funkcemi, které vám umožňují snadno vytvářet mnoho widgetů, jako je vbox, hbox, tlačítko, rám, text, nabídka a mnoho dalšího.

Přečtěte si také : Vytvářejte grafická dialogová okna GTK+ pomocí Zenity

Instalace Gtkdialog v Linuxu

Můžete si stáhnout gtkdialog-0.8.3 (což je nejnovější verze) nebo můžete také použít příkaz wget, rozbalit stažený soubor a spustit následující příkazy pro kompilaci ze zdroje.

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

Nyní začněme vytvářet nějaké boxy, ve své domovské složce vytvořte nový skript „myprogram“.

Můj první program
cd
touch myprogram

Nyní otevřete soubor „myprogram“ pomocí libovolného textového editoru a přidejte do něj následující kód.

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

Uložte soubor a nastavte oprávnění ke spuštění a spusťte jej podle obrázku.

chmod 755 myprogram
./myprogram

Takto byl vytvořen a spuštěn váš první program pomocí gtkdialog.

Nyní si kód ve zkratce vysvětlíme.

  1. #!/bin/bash: První řádek každého skriptu shellu, používá se k určení cesty shellu bash.
  2. GTKDIALOG=gtkdialog: Zde jsme definovali proměnnou, která ji použije později při provádění skriptu shellu pomocí gtkdialog, tento řádek musí být ve všech skriptech, které vytvoříte pomocí gtkdialog.
  3. export MAIN_DIALOG=: Další proměnná, kterou jsme definovali a která bude obsahovat veškerou syntaxi pro naše rozhraní, můžete nahradit MAIN_DIALOG libovolným názvem, ale musíte jej nahradit také v posledních 4 řádcích skriptu.
  4. Název okna: Nemyslím si, že tento kód je třeba vysvětlovat, vytvořili jsme nadpis, výchozí ikonu pro okno, zvolili jsme, zda bylo možné změnit velikost nebo ne, a definovali jsme šířku a výška, kterou chceme, samozřejmě všechny tyto možnosti jsou sekundární, stačí použít tag , pokud chcete.
  5. : Tag vbox používáme k vytvoření vertikálního boxu, je důležité vytvořit tag vbox, aby obsahoval další tagy jako hbox a button atd.
  6. : Zde jsme vytvořili vodorovný rámeček pomocí tagu , „space-fill “ a „space-expand “ jsou možnosti, jak rozšířit hbox skrz okno.
  7. <button>: Vytvořte nové tlačítko.
  8. : Toto je výchozí text tlačítka, tag štítku jsme uzavřeli pomocí , samozřejmě je velmi důležité zavřít všechny tagy, které používáme.
  9. : Toto se stane po kliknutí na tlačítko, můžete spustit příkaz shellu, pokud chcete, nebo spustit jakýkoli jiný soubor, pokud chcete, existuje také mnoho dalších akcí a signálů. nezapomeňte jej zavřít pomocí .
  10. : Zavře značku tlačítka.
  11. : Zavřete značku hbox.
  12. : Pro zavření značky okna.

Poslední 4 řádky musí být také ve všech skriptech shellu, které vytvoříte pomocí gtkdialog, spouštějí proměnnou MAIN_DIALOG pomocí příkazu gtkdialog s volbou –center pro vystředění okna, což je ve skutečnosti velmi užitečné.

Můj druhý program

Podobně vytvořte další soubor a nazvěte jej „secondprogram“ a přidejte do něj celý následující obsah.

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

Uložte soubor, nastavte pro něj oprávnění ke spuštění a spusťte jej podle obrázku.

chmod 755 secondprogram
./secondprogram

Nyní si kód ve zkratce vysvětlíme.

  1. Widget combobox vytvoříme pomocí , tag je výchozí název proměnné, do které bude zvolená položka uložena, tuto proměnnou jsme použili k pozdějšímu tisku vybrané položky pomocí echo.
  2. je vodorovný oddělovač, můžete pro něj nastavit výchozí šířku pomocí možnosti width-request.
  3. je tlačítko OK, které zavře okno, jakmile na něj kliknete, je velmi užitečné, takže k tomu nepotřebujeme vytvářet vlastní tlačítko.
Můj třetí Prgoram

Vytvořte další soubor s názvem ‚třetí program‘ a přidejte do něj celou hromadu kódu.

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

Uložte soubor, udělte oprávnění ke spuštění a spusťte jej podle obrázku.

chmod 755 thirdprogram
./thirdprogram

Zde je vysvětlení kódu podrobněji.

  1. Vytvořili jsme dvě záložky poznámkového bloku pomocí , možnost tab-label je místo, kde můžete vytvářet karty, gtkdialog vytvoří karty v závislosti na zadaných štítcích, každý je definován jako karta, takže první karta začíná znakem první , druhá karta začíná druhým .
  2. je textový widget, k nastavení výchozího textu jsme použili značku
  3. Tag vytvoří nové tlačítko roztočení, možnost range-min je minimální hodnota a range-max je maximální hodnota tlačítka roztočení, range-value je výchozí hodnota pro roztočení knoflík.
  4. jsme dali proměnnou „myscale“.
  5. Vybranou hodnotu jsme vytiskli pomocí proměnné echo a $myscale, výchozí signál pro akci je zde „value-changed“, což nám k tomu pomohlo.

Toto bylo jen příklad okna, pokud chcete, můžete vytvořit složitější rozhraní pomocí gtkdialog, můžete procházet oficiální dokumentaci na webu gtkdialog a zobrazit všechny značky gtkdialog z odkazu níže.

Dokumentace dialogu Gtk

Už jste dříve používali gtkdialog k vytváření GUI pro vaše shell skripty? Nebo jste použili nějaký takový nástroj k vytvoření rozhraní? Co si o tom myslíš?