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.

KDialog

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.

Linki

  • Michał Olber

    To jest ciekawe :) Chciałem nawet spróbować programować w Qt, bo jest interesujące :]

  • Zbigniew

    "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 ;-)