Wyszukiwanie w witrynie

Gtkdialog — tworzenie graficznych interfejsów i okien dialogowych (GTK+) przy użyciu skryptów powłoki w systemie Linux


Gtkdialog (lub gtkdialog) to fajne narzędzie typu open source do tworzenia i budowania interfejsów i okien dialogowych GTK+ za pomocą skryptów powłoki systemu Linux i korzystania z biblioteki GTK, a także przy użyciu składni podobnej do XML, która ułatwia tworzenie interfejsów za pomocą gtkdialog. Jest bardzo podobny do najsłynniejszego narzędzia o nazwie Zenity, ale zawiera kilka przydatnych, konfigurowalnych funkcji, które umożliwiają łatwe tworzenie wielu widżetów, takich jak vbox, hbox, przycisk, ramka, tekst, menu i wiele innych.

Przeczytaj także: Twórz graficzne okna dialogowe GTK+ za pomocą Zenity

Instalacja Gtkdialog w systemie Linux

Możesz pobrać gtkdialog-0.8.3 (która jest najnowszą wersją) lub możesz także użyć polecenia wget, rozpakować pobrany plik i uruchomić następujące polecenia, aby skompilować ze źródła.

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

Teraz zacznijmy tworzyć kilka pudełek, utwórz nowy skrypt „myprogram” w twoim folderze domowym.

Mój pierwszy program
cd
touch myprogram

Teraz otwórz plik „mójprogram” za pomocą dowolnego edytora tekstu i dodaj do niego następujący kod.

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

Zapisz plik, ustaw uprawnienia do wykonywania i uruchom go, jak pokazano.

chmod 755 myprogram
./myprogram

W ten sposób utworzyłeś i uruchomiłeś swój pierwszy program przy użyciu gtkdialog.

Teraz pokrótce wyjaśnimy kod.

  1. #!/bin/bash: Pierwsza linia dowolnego skryptu powłoki, używana do określenia ścieżki powłoki bash.
  2. GTKDIALOG=gtkdialog: Tutaj zdefiniowaliśmy zmienną, która będzie używana później podczas wykonywania skryptu powłoki za pomocą gtkdialog. Ta linia musi znajdować się we wszystkich skryptach tworzonych za pomocą gtkdialog.
  3. export MAIN_DIALOG=: Kolejna zdefiniowana przez nas zmienna, która będzie zawierać całą składnię naszego interfejsu. Możesz zastąpić MAIN_DIALOG dowolną nazwą, ale musisz ją zastąpić także w ostatnich 4 liniach skryptu.
  4. Tytuł okna: myślę, że nie trzeba wyjaśniać tego kodu, stworzyliśmy tytuł, domyślną ikonę okna, wybieramy, czy można zmieniać jego rozmiar, czy nie, i zdefiniowaliśmy szerokość i wysokość, którą chcemy, oczywiście wszystkie te opcje są drugorzędne, możesz po prostu użyć tagu , jeśli chcesz.
  5. : Używamy tagu vbox do tworzenia pionowego pudełka, ważne jest, aby utworzyć tag vbox, aby zawierał inne tagi, takie jak hbox i przycisk itp.
  6. : Tutaj utworzyliśmy poziomą ramkę za pomocą tagu , „space-fill” i „space-expand” to opcje umożliwiające rozwinięcie hbox przez okno.
  7. <button>: Utwórz nowy przycisk.
  8. : To jest domyślny tekst przycisku, tag label zamknęliśmy za pomocą , oczywiście bardzo ważne jest zamknięcie wszystkich tagów, których używamy.
  9. : To się dzieje po kliknięciu przycisku. Możesz uruchomić polecenie powłoki, jeśli chcesz, lub wykonać dowolny inny plik, jeśli chcesz, jest też wiele innych akcji i sygnałów, nie nie zapomnij zamknąć go za pomocą .
  10. : Aby zamknąć znacznik przycisku.
  11. : Aby zamknąć tag hbox.
  12. : Aby zamknąć znacznik okna.

Ostatnie 4 linie muszą także znajdować się we wszystkich skryptach powłoki tworzonych za pomocą gtkdialog. Wykonują one zmienną MAIN_DIALOG za pomocą polecenia gtkdialog z opcją –center do wyśrodkowania okna, co jest w rzeczywistości bardzo przydatne.

Mój drugi program

Podobnie utwórz kolejny plik i nadaj mu nazwę „drugi program” i dodaj do niego całą następującą zawartość.

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

Zapisz plik, ustaw dla niego uprawnienia do wykonywania i uruchom go, jak pokazano.

chmod 755 secondprogram
./secondprogram

Teraz pokrótce wyjaśnimy kod.

  1. Widget combobox tworzymy za pomocą , znacznik to domyślna nazwa zmiennej, w której będzie przechowywany wybrany element, użyliśmy tej zmiennej do późniejszego wydrukowania wybranego elementu za pomocą echo.
  2. to separator poziomy, możesz ustawić dla niego domyślną szerokość za pomocą opcji żądania szerokości.
  3. to przycisk OK, który zamyka okno zaraz po kliknięciu. Jest bardzo przydatny, więc nie musimy w tym celu tworzyć niestandardowego przycisku.
Mój trzeci Prgoram

Utwórz kolejny plik o nazwie „trzeci program” i dodaj do niego całą masę kodu.

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

Zapisz plik, przyznaj uprawnienia do wykonywania i uruchom go, jak pokazano.

chmod 755 thirdprogram
./thirdprogram

Tutaj wyjaśnienie kodu w bardziej szczegółowy sposób.

  1. Stworzyliśmy dwie zakładki notesu za pomocą , opcja tab-label umożliwia tworzenie zakładek, gtkdialog utworzy zakładki w zależności od wprowadzonych etykiet, każde jest zdefiniowane jako zakładka, więc pierwsza zakładka zaczyna się od pierwszy , druga zakładka zaczyna się od drugiego .
  2. to widget tekstowy, użyliśmy tagu
  3. Znacznik utworzy nowy przycisk obrotu, opcja zakres-min to wartość minimalna, a zakres-max to maksymalna wartość przycisku obrotu, wartość zakresu to domyślna wartość obrotu przycisk.
  4. Do przycisku nadaliśmy zmienną „myscale”.
  5. Wydrukowaliśmy wybraną wartość za pomocą zmiennej echo i $myscale, domyślnym sygnałem dla akcji jest tutaj „zmiana wartości”, co nam w tym pomogło.

To było tylko przykładowe okno, możesz tworzyć bardziej skomplikowane interfejsy używając gtkdialog, jeśli chcesz, możesz przeglądać oficjalną dokumentację na stronie gtkdialog, aby wyświetlić wszystkie znaczniki gtkdialog z linku poniżej.

Dokumentacja Gtkdialogu

Czy używałeś już gtkdialog do tworzenia GUI dla skryptów powłoki? A może korzystałeś z takiego narzędzia do tworzenia interfejsów? Co o tym sądzisz?