Zenity - Kreira grafičke (GTK+) dijaloške okvire u komandnoj liniji i shell skriptama


GNU Linux, operativni sistem izgrađen na veoma moćnom Kernelu pod nazivom Linux. Linux je poznat po svojim operacijama na komandnoj liniji. Sa pronalaskom Linuxa u svakodnevnom i desktop računarstvu, nix više nije pristrasan prema komandnoj liniji, podjednako je grafički i razvoj grafičke aplikacije više nije težak zadatak.

Ovdje u ovom članku ćemo raspravljati o kreiranju i izvršavanju jednostavnog grafičkog dijaloškog okvira koristeći GTK+ aplikaciju pod nazivom „Zenity“.

Šta je Zenity?

Zenity je open source i cross-platform aplikacija koja prikazuje GTK+ dijaloške okvire u komandnoj liniji i koristeći shell skripte. Omogućava traženje i predstavljanje informacija u/iz ljuske u grafičkim kutijama. Aplikacija vam omogućava da kreirate grafičke dijaloške okvire u komandnoj liniji i čini interakciju između korisnika i ljuske vrlo jednostavnom.

Postoje i druge alternative, ali ništa se ne može porediti sa jednostavnošću Zenitya, posebno kada vam nije potrebno složeno programiranje. Zenity, alat koji morate imati u rukama.

Zenity Features

  1. FOSS softver
  2. Višeplatformska aplikacija
  3. Dozvoli izvršavanje dijaloškog okvira GTK+
  4. Alat komandne linije
  5. Podrška za Shell Scripting

Korisnost

  1. Jednostavno kreiranje GUI
  2. Manje mogućnosti od ostalih složenih alata
  3. Omogućuje interakciju skriptama ljuske s korisnicima GUI-ja
  4. Moguće je jednostavno kreiranje dijaloga za grafičku interakciju korisnika

Budući da je Zenity dostupan za sve poznate glavne platforme i na osnovu GTK+ biblioteke, Zenity program se može prenijeti na/sa druge platforme.

Instalacija Zenity u Linux

Zentity je po defaultu instaliran ili dostupan u spremištu većine današnje standardne Linux distribucije. Možete provjeriti da li je instaliran na vašoj mašini ili ne tako što ćete izvršiti sljedeće naredbe.

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

Ako nije instaliran, možete ga instalirati pomoću naredbe Apt ili Yum kao što je prikazano ispod.

ravisaive@tecmint:~$ sudo apt-get install zenity		[on Debian based systems]

root@tecmint:~# yum install zenity				[on RedHat based systems]

Osim toga, možete ga napraviti i iz izvornih datoteka, preuzeti najnoviji Zenity izvorni paket (tj. trenutnu verziju 3.8) koristeći sljedeći link.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Zenity Osnovni dijaloški okviri

Neki od osnovnih dijaloga Zenity, koji se mogu pozvati direktno iz komandne linije.

1. Šta kažete na brzi dijalog kalendara?
root@tecmint:~# zenity --calendar

2. Okvir za dijalog o grešci
root@tecmint:~# zenity --error

3. Dijaloški okvir za unos općeg teksta
root@tecmint:~# zenity --entry

4. Informacijski dijalog
root@tecmint:~# zenity --info

5. Dijaloški okvir za pitanje
root@tecmint:~# zenity --question

6. Traka napretka
root@tecmint:~# zenity --progress

7. Scale Dijalog
root@tecmint:~# zenity --scale

8. Dijalog lozinke
root@tecmint:~# zenity --password

9. Dijaloški okvir za obrazac
root@tecmint:~# zenity --forms

10. O dijalogu
root@tecmint:~# zenity --about

Dijalog za kreiranje shell skripte

Sada bismo razgovarali o kreiranju Zenity Dialog koristeći jednostavne shell skripte. Iako možemo kreirati jedan dijalog izvršavanjem Zenity komandi direktno iz ljuske (kao što smo uradili gore), ali tada ne možemo povezati dva dijaloška okvira da bismo dobili neki smisleni rezultat.

Šta kažete na interaktivni dijaloški okvir koji uzima vaše podatke i prikazuje rezultat.

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

Sačuvajte ga u „anything.sh“ (konvencionalno) i ne zaboravite da ga učinite izvršnim. Postavite dozvolu 755 na datoteku anything.sh i pokrenite skriptu.

root@tecmint:~# chmod 755 anything.sh 
root@tecmint:~# sh anything.sh

O opisu skripte

Konvencionalni shebang aka hashbang

#!/bin/bash

U donjem redu 'prvi' je varijabla, a vrijednost varijable se generira u vrijeme izvođenja.

    1. –entry“ znači da se od zenityja traži da generiše okvir za unos teksta.
    2. – title=’ definira naslov generiranog okvira za tekst.
    3. —text=’ definira tekst koji je dostupan u okviru za unos teksta.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

Ovaj red donje datoteke skripte služi za generiranje dijalog box-a informacija (–info), sa naslovom “Dobrodošli” i tekstom “Mr./Ms.first”

zenity --info --title="Welcome" --text="Mr./Ms. $first"

Ova linija skripte je slična redu broj dva skripte, osim što je ovdje definirana nova varijabla 'last'.

last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

Ovaj posljednji red skripte je opet sličan trećem redu skripte i generiše dijaloški okvir informacija koji sadrži obje varijable '$first' i '$last'.

zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Za više informacija o tome kako kreirati prilagođene dijaloške okvire koristeći shell skriptu, posjetite sljedeću referentnu stranicu Zenity.

  1. https://help.gnome.org/users/zenity/stable/

U sljedećem članku ćemo integrirati Zenity sa više shell skripte za GUI korisničku interakciju. Do tada ostanite sa nama i povezani na Tecmint. Ne zaboravite dati svoje vrijedne povratne informacije u odjeljku za komentare.