Tworzenie rozszerzeń Nautilus’a z wykorzystaniem okien dialogowych – część 2

Autor: lukas, sobota 22 Styczeń 2011 nautilus podstawy programowanie
komentarze 0

bash
Po króciutkim wstępie do programowania w powłoce Bash i pisaniu rozszerzeń Nautilus’a, przyszedł czas na coś ciekawszego. Dziś będzie o oknach dialogowych czyli swego rodzaju graficznym interfejsie użytkownika (nazywany często GUI). Do tworzenia okienkowego interfejsu wykorzystamy oprogramowanie Zenity. Jest to narzędzie stworzone specjalnie dla środowiska GNOME. Zenity umożliwia pobieranie danych od użytkownika, wyświetlanie ważnych informacji lub komunikatów błędów. Program nie jest trudny w obsłudze i świetnie nadaje się do integracji z Bashowymi skryptami. Zapraszam.

Informacje, ostrzeżenia, błędy.

Zaczniemy do czegoś prostego. Wyświetlamy okno dialogowe z krótką informacją.

zenity --info --title="Skrypt Nautilus'a" --text="Krótka wiadomość tekstowa."

Wyświetlamy okno z ostrzeżeniem.

zenity --warning --title="Skrypt Nautilus'a" --text="Plik o takiej nazwie już istnieje.\n\nKończę."

Wyświetlamy okno dialogowe z informacją o błędzie.

zenity --error --title="Skrypt Nautilus'a" --text="Błąd\nZmiana nazwy plików nie powiodła się."

Pobieranie informacji od użytkownika.

Wyświetlamy okno dialogowe z pytaniem.

zenity --question --text="Jesteś pewny, że chcesz to zrobić?"

Wyświetlamy okno dialogowe z poziomym suwakiem.

zenity --scale --text="Wybierz od 0 do 100"
 
#Wybór wartości od 0 do 100.
zenity --scale --text="Wybierz od 1 do 10" --min-value=1 --max-value=10 --value=5
 
#Wybór wartości od 1 do 10 - minimalna wartość: 1, maksymalna wartość: 10, domyślna wartość: 5

Wyświetlamy okno dialogowe z polem do wprowadzania danych.

zenity --entry --title="Skrypt Nautilus'a" --text="Wprowadz nowe dane"

Wyświetlamy okno dialogowe z nazwą użytkownika i ścieżką do jego katalogu.

zenity --entry --title="Skrypt Nautilus'a" --text="Ścieżka do katalogu $USER" --entry-text="$HOME"

Okno dialogowe z listą. Budujemy Menu skryptu.

Wyświetlamy okno dialogowe z listą dostępnych opcji (tylko jedna opcja do wyboru).

zenity --title="Menu" --text="Lista opcji" --list --radiolist \
--column="Wybór" --column="Format kompresji" --column="Obsługuje" \
FALSE '.tar.gz' 'Linux' \
FALSE '.zip' 'Windows'

Wyświetlamy okno dialogowe z listą dostępnych opcji (wszystkie opcje do wyboru).

zenity --title="Menu" --text="Lista opcji" --list --checklist --column="Wybór" --column="Opcje" \
TRUE 'Usuń nadmiar spacji' \
TRUE 'Zamień duże litery na małe' \
FALSE 'Zamień małe litery na duże' \
FALSE 'Zamień spacje na znak _'

Wyświetlamy okno dialogowe o ustalonej szerokości z listą dostępnych opcji i ich krótkim opisem.

zenity --width="500" --height="250" --title="Menu" --text="Lista opcji" --list --checklist \
--column="Wybór" --column="Opcje" --column="Opis" \
FALSE 'Usuń nadmiar spacji' 'Usuwa nadmiarowe spacje' \
FALSE 'Zamień duże litery na małe' 'Zamień duże litery małymi' \
TRUE 'Zamień małe litery na duże' 'Zamiana małych liter dużymi' \
TRUE 'Zamień spacje na znak _' 'Zastępuje znaki spacji znakiem _'

Przypisujemy zmiennym dane, wartości liczbowe lub listę opcji pochodzących z okien dialogowych.

Kompresja plików do formatu.

COMPRES=$( zenity --title="Skompresuj" --text="Lista opcji" --list --radiolist \
--column="Wybór" --column="Format kompresji" --column="Obsługuje" \
FALSE '.tar.gz' 'Linux' \
FALSE '.zip' 'Windows' ) ; echo "$COMPRES"

Wysłanie plików w wybrane miejsce.

SEND_FILE=$( zenity --entry --title="Wyślij do" \
--text="Ścieżka do katalogu $USER" \
--entry-text="$HOME" ) ; echo "$SEND_FILE"

Wartość liczbowa do konwersji zdjęć dla programu imagemagick.

QUALITY=$( zenity --scale --text="Wybierz od 1 do 100" \
--min-value=1 --max-value=100 --value=85 ) ; echo "$QUALITY"

Wyświetlanie informacji o użytkowniku.

Informacje o użytkowniku i systemie operacyjnym.

zenity --info --title="Informacje o użytkowniku" \
--text="Witaj $USER\nZnajdujesz się w katalogu $HOME\n\
Dziś jest: `date +%A`\n\
Godzina: `date +%H:%M`\n\
Używasz systemu: `uname`\n\
Dystrybucja: `lsb_release -si`\n\
Wersja: `lsb_release -sr`"

Z mojej strony to już koniec. Myślę iż jest to na tyle proste, że nie muszę wszystkiego wyjaśniać. Jeśli jest inaczej, to zapraszam na trzecią część, w której pewne kwestie zostaną przeze mnie dokładnie objaśnione. Zainteresowanych i niecierpliwych odsyłam do komentowania i zadawania pytań ;)

Zostaw Komentarz