Zenity - stvara grafičke (GTK+) dijaloške okvire u naredbenom retku i skriptama ljuske


GNU Linux, operativni sustav izgrađen na vrlo moćnom Kernelu koji se zove Linux. Linux je poznat po svojim operacijama naredbenog retka. S izumom Linuxa u svakodnevnom i stolnom računalstvu, nix više nije sklon naredbenom retku, jednako je grafički i razvoj grafičke aplikacije više nije težak zadatak.

Ovdje u ovom članku raspravljat ćemo o stvaranju i izvršavanju jednostavnog grafičkog dijaloškog okvira pomoću GTK+ aplikacije pod nazivom “Zenity“.

Što je Zenity?

Zenity je aplikacija otvorenog koda i više platformi koja prikazuje GTK+ dijaloške okvire u naredbenom retku i pomoću skripti ljuske. Omogućuje traženje i predstavljanje informacija u/iz ljuske u grafičkim okvirima. Aplikacija vam omogućuje stvaranje grafičkih dijaloških okvira u naredbenom retku i čini interakciju između korisnika i ljuske vrlo jednostavnom.

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

Značajke Zenity

  1. FOSS softver
  2. Aplikacija za više platformi
  3. Dopusti izvođenje dijaloškog okvira GTK+
  4. Alat za naredbeni redak
  5. Podrška u Shell skriptiranju

Korisnost

  1. Jednostavna GUI izrada
  2. Manje značajki od ostalih složenih alata
  3. Omogućuje interakciju skripti ljuske s korisnicima GUI-ja
  4. Jednostavna izrada dijaloga moguća je za grafičku interakciju korisnika

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

Instalacija Zenityja u Linuxu

Zentity je prema zadanim postavkama instaliran ili dostupan u repozitoriju većine današnjih standardnih Linux distribucija. Možete provjeriti je li instaliran na vašem računalu ili ne izvršavanjem sljedećih naredbi.

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 u nastavku.

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

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

Štoviše, možete ga izgraditi i iz izvornih datoteka, preuzmite najnoviji izvorni paket Zenity (tj. trenutnu verziju 3.8) pomoću sljedeće veze.

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

Osnovni dijaloški okviri Zenity

Neki od osnovnih dijaloških okvira Zenity, koji se mogu pozvati izravno iz naredbenog retka.

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

2. Dijaloški okvir pogreške
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 pitanja
root@tecmint:~# zenity --question

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

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

8. Dijaloški okvir za lozinku
root@tecmint:~# zenity --password

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

10. An about Dijalog
root@tecmint:~# zenity --about

Dijaloški okvir Stvori skriptu ljuske

Sada bismo ovdje raspravljali o stvaranju Zenity Dialog pomoću jednostavnih skripti ljuske. Iako možemo stvoriti jedan dijaloški okvir izvršavanjem naredbi Zenity izravno iz ljuske (kao što smo učinili gore), ali tada ne možemo povezati dva dijaloška okvira kako bismo dobili neki smisleni rezultat.

Što kažete na interaktivni dijaloški okvir koji uzima vaš unos 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"

Spremite ga u 'anything.sh' (konvencionalno) i ne zaboravite ga učiniti 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 retku 'prva' je varijabla, a vrijednost varijable se generira tijekom izvođenja.

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

Ovaj redak donje datoteke skripte služi za generiranje dijaloškog okvira s informacijama (–info), s naslovom "Dobro došli" i tekstom "Mr./Ms.first"

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

Ovaj redak skripte je sličan retku broj dva skripte osim što je ovdje definirana nova varijabla 'posljednji'.

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

Ovaj posljednji red skripte opet je sličan trećem retku skripte i generira dijaloški okvir s informacijama koji sadrži varijable '$first' i '$last'.

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

Za više informacija o tome kako stvoriti prilagođene dijaloške okvire pomoću skripte ljuske, posjetite sljedeću referentnu stranicu Zenity.

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

U sljedećem članku ćemo integrirati Zenity s više skripti ljuske za GUI interakciju korisnika. Do tada ostanite s nama i povezani s Tecmintom. Ne zaboravite dati svoje vrijedne povratne informacije u odjeljku za komentare.