To nieprawda, że KDE jest tylko i wyłącznie świetnym środowiskiem graficznym. Linia komend i skrypty są także obsługiwane przez KDE, głównie chodzi tutaj o aplikacje KDE, które można kontrolować z linii komend. Również skrypty powłokowe mogą wykorzystywać widgety KDE do zadań specjalnych. Jednym z takich narzędzi jest KDialog. Służy on do wyświetlania okien dialogowych z poziomu skryptów powłoki.
Spróbujmy zatem wykorzystać KDialog to wyświetlenia pomocy na temat danej aplikacji konsolowej. Stwórzmy zatem plik kdialog.sh o następującej zawartości:
#!/bin/sh program=${1} if [ $# = 0 ] then kdialog --sorry "Jako parametr podaj nazwę programu. Na przykład: ./kdialog.sh wget" exit 1 else $program --help | kdialog --title "Parametry dla programu $program" --textbox /dev/stdin 640 480 fi
Na samym początku do zmiennej $program
przypisujemy pierwszy parametr jaki podamy wywołując nasz skrypt. Jeśli nie podamy żadnego parametru zostanie pokazane okno z komunikatem ’Niestety’. W innym przypadku zostanie wykonany nasz program (podany jako parametr) z opcją --help
.
To co wyświetli aplikacja zostanie przekierowane do kdialog i wyświetlone w formie okna z polem tekstowym. Składnia takiego okna wygląda następująco:
--textbox <file> [width] [height] Okno z polem tekstowym
Dodatkowo możemy ustawić sobie tytuł okna za pomocą parametru --title
.
Kolejnym ciekawym zastosowaniem KDialog mogą być wszelkiego rodzaju powiadomienia za pomocą dymków – pasywnych okienek. Składnia takiego okna jest bardzo prosta. Wygląda ona następująco: --passivepopup <text> <timeout>
. Pierwszym parametrem jest tekst jaki ma zostać wyświetlony, a drugim czas po jakim dymek sa zniknie.
Stwórzmy zatem proste powiadomienie, które wyświetli informację o pingu do jakiejść strony. Tworzymy plik kdialog_ping.sh o następującej zawartości:
#!/bin/sh host=${1} if [ $# = 0 ] then kdialog --sorry "Jako parametr podaj nazwę hostu. Na przykład: ./kdialog_ping.sh wp.pl" exit 1 else wynik=`ping -c 1 $host 2>&1` kdialog --passivepopup "$wynik" 5 fi
Tak jak w poprzednim przykładzie, sprawdzamy, czy podano adres hosta jako parametr. Jeśli tak wykonujemy polecenie ping
z opcją -c 1
. Dzięki temu parametrowi polecenie ping jeden raz sprawdzi ping do hosta i zakończy swoje działanie. Wynik tej operacji zostaje zapisany w zmiennej $wynik
, a następnie wyświetlony na 5 sekund w postaci dymka.
KDialog pozwala na tworzenie okien zapytania z klawiszami Tak/Nie, do wpisywania haseł, z paskiem postępu, które zwraca identyfikator DCOP do dalszej komunikacji. Więcej ciekawych możliwości na temat KDialog można przeczytać w linkach poniżej.
To jest ciekawe :) Chciałem nawet spróbować programować w Qt, bo jest interesujące :]
"nie prawda"
"nieprawda" – łącznie!
Fajne przyda się :) Nie wiedziałem że taka opcja istnieje ;)
Dzięki człowieku, już miałem się przez dbusa przekopywać, a to takie proste :)
dbus też jest prosty ;-)