Zenity — tworzy graficzne okna dialogowe (GTK+) w skryptach wiersza poleceń i powłoki
GNU Linux, system operacyjny zbudowany na bardzo potężnym jądrze zwanym Linux. Linux słynie z operacji wykonywanych z wiersza poleceń. Wraz z wynalezieniem Linuksa w codziennej pracy i komputerach stacjonarnych, nix nie jest już bardziej zorientowany na wiersz poleceń, jest równie graficzny, a tworzenie aplikacji graficznych nie pozostaje już trudnym zadaniem.
W tym artykule omówimy tworzenie i wykonanie prostego graficznego okna dialogowego przy użyciu aplikacji GTK+ o nazwie „Zenity”.
Co to jest Zenit?
Zenity to aplikacja typu open source, wieloplatformowa, która wyświetla okna dialogowe GTK+ w wierszu poleceń i przy użyciu skryptów powłoki. Umożliwia zadawanie i prezentowanie informacji do/z powłoki w Oknach Graficznych. Aplikacja umożliwia tworzenie graficznych okien dialogowych w wierszu poleceń i bardzo ułatwia interakcję pomiędzy użytkownikiem a powłoką.
Istnieją inne alternatywy, ale nic nie może się równać z prostotą Zenity, szczególnie gdy nie potrzebujesz skomplikowanego programowania. Zenity, narzędzie, które musisz mieć w rękach.
Funkcje Zenity
- Oprogramowanie FOSS
- Aplikacja wieloplatformowa
- Zezwól na wykonanie okna dialogowego GTK+
- Narzędzie wiersza poleceń
- Wsparcie w skryptach powłoki
Przydatność
- Łatwe tworzenie GUI
- Mniej funkcji niż inne złożone narzędzia
- Umożliwia skryptom powłoki interakcję z użytkownikami GUI
- Możliwe jest tworzenie prostych okien dialogowych umożliwiających graficzną interakcję z użytkownikiem
Ponieważ Zenity jest dostępny na wszystkie znane główne platformy i opiera się na bibliotece GTK+, program Zenity można przenieść na/z innej platformy.
Instalacja Zenity w systemie Linux
Zentity jest domyślnie instalowany lub dostępny w repozytorium większości współczesnych dystrybucji Standard Linux. Możesz sprawdzić, czy jest zainstalowany na twoim komputerze, czy nie, wykonując następujące polecenia.
ravisaive@tecmint:~$ zenity --version
3.8.0
ravisaive@tecmint:~$ whereis zenity
zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz
Jeśli nie jest zainstalowany, możesz go zainstalować za pomocą polecenia Apt lub Yum, jak pokazano poniżej.
ravisaive@tecmint:~$ sudo apt-get install zenity [on Debian based systems]
root@tecmint:~# yum install zenity [on RedHat based systems]
Co więcej, możesz go także zbudować z plików źródłowych, pobierz najnowszy pakiet źródłowy Zenity (tj. aktualna wersja 3.8), korzystając z poniższego linku.
- http://ftp.gnome.org/pub/gnome/sources/zenity/
Podstawowe okna dialogowe Zenity
Niektóre z podstawowych okien dialogowych Zenity, które można wywołać bezpośrednio z linii poleceń.
1. Co powiesz na szybkie okno kalendarza?
root@tecmint:~# zenity --calendar
2. Okno dialogowe błędu
root@tecmint:~# zenity --error
3. Okno dialogowe wprowadzania tekstu ogólnego
root@tecmint:~# zenity --entry
4. Okno informacyjne
root@tecmint:~# zenity --info
5. Okno dialogowe z pytaniem
root@tecmint:~# zenity --question
6. Pasek postępu
root@tecmint:~# zenity --progress
7. Okno dialogowe Skala
root@tecmint:~# zenity --scale
8. Okno dialogowe hasła
root@tecmint:~# zenity --password
9. Okno dialogowe formularza
root@tecmint:~# zenity --forms
10. Okno dialogowe „O mnie”.
root@tecmint:~# zenity --about
Utwórz okno dialogowe skryptu powłoki
Teraz omówimy tutaj tworzenie Zenity Dialog przy użyciu prostych skryptów powłoki. Chociaż możemy stworzyć pojedyncze okno dialogowe, wykonując polecenia Zenity bezpośrednio z powłoki (tak jak zrobiliśmy powyżej), ale nie możemy wtedy połączyć dwóch okien dialogowych, aby uzyskać jakiś znaczący wynik.
Co powiesz na interaktywne okno dialogowe, które pobiera Twoje dane i pokazuje wynik.
#!/bin/bash
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)
zenity --info --title="Welcome" --text="Mr./Ms. $first"
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"
Zapisz go w „anything.sh” (konwencjonalnie) i nie zapomnij uczynić go wykonywalnym. Ustaw uprawnienia 755 dla pliku anything.sh i uruchom skrypt.
root@tecmint:~# chmod 755 anything.sh
root@tecmint:~# sh anything.sh
O opisie skryptu
Konwencjonalny shebang, czyli hashbang
#!/bin/bash
W poniższym wierszu „pierwszy” znajduje się zmienna, a wartość zmiennej jest generowana w czasie wykonywania.
- „–wpis” oznacza, że zenity jest proszony o wygenerowanie tekstowego pola wprowadzania.
- „– title=” określa tytuł wygenerowanego pola tekstowego.
- „—text=” definiuje tekst dostępny w polu wprowadzania tekstu.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)
Ta linia poniższego pliku skryptu służy do generowania okna dialogowego Informacje (–info) z tytułem „Witamy” i tekstem „Pan/Pani pierwsza”
zenity --info --title="Welcome" --text="Mr./Ms. $first"
Ta linia skryptu jest podobna do drugiej linii skryptu, z tą różnicą, że zdefiniowano tutaj nową zmienną „ostatnia”.
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)
Ta ostatnia linia skryptu jest ponownie podobna do trzeciej linii skryptu i generuje okno dialogowe informacyjne, które zawiera zarówno zmienne „$first”, jak i „$last”.
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"
Aby uzyskać więcej informacji na temat tworzenia niestandardowych okien dialogowych przy użyciu skryptu powłoki, odwiedź następującą stronę referencyjną Zenity.
- https://help.gnome.org/users/zenity/stable/
W następnym artykule będziemy integrować Zenity z większą liczbą skryptów powłoki dla interakcji użytkownika z GUI. Do tego czasu bądź na bieżąco i połącz się z Tecmint. Nie zapomnij podzielić się swoją cenną opinią w sekcji komentarzy.