Zenity - Δημιουργεί γραφικά (GTK+) πλαίσια διαλόγου σε σενάρια γραμμής εντολών και κελύφους


GNU Linux, το λειτουργικό σύστημα που βασίζεται σε πολύ ισχυρό Πυρήνα που ονομάζεται Linux. Το Linux είναι διάσημο για τις λειτουργίες της γραμμής εντολών. Με την εφεύρεση του Linux στον καθημερινό και επιτραπέζιο υπολογισμό, το nix δεν παραμένει πλέον προκατειλημμένο προς τη γραμμή εντολών, είναι εξίσου γραφικό και η ανάπτυξη γραφικών εφαρμογών δεν παραμένει πλέον δύσκολη υπόθεση.

Εδώ σε αυτό το άρθρο θα συζητήσουμε τη δημιουργία και την εκτέλεση απλού πλαισίου διαλόγου γραφικών χρησιμοποιώντας την εφαρμογή GTK+ που ονομάζεται "Zenity".

Τι είναι το Zenity;

Το Zenity είναι μια εφαρμογή ανοιχτού κώδικα και μια εφαρμογή πολλαπλών πλατφορμών που εμφανίζει Πλαίσια διαλόγου GTK+ στη γραμμή εντολών και χρησιμοποιώντας σενάρια φλοιού. Σας επιτρέπει να ζητάτε και να παρουσιάζετε πληροφορίες προς/από το κέλυφος σε γραφικά κουτιά. Η εφαρμογή σάς επιτρέπει να δημιουργείτε γραφικά πλαίσια διαλόγου στη γραμμή εντολών και κάνει την αλληλεπίδραση μεταξύ χρήστη και φλοιού πολύ εύκολη.

Υπάρχουν και άλλες εναλλακτικές, αλλά τίποτα δεν συγκρίνεται με την απλότητα του Zenity, ειδικά όταν δεν χρειάζεστε πολύπλοκο προγραμματισμό. Zenity, ένα εργαλείο που πρέπει να έχετε στα χέρια σας.

Χαρακτηριστικά Zenity

  1. Λογισμικό FOSS
  2. Εφαρμογή Cross Platform
  3. Να επιτρέπεται η εκτέλεση του πλαισίου διαλόγου GTK+
  4. Εργαλείο γραμμής εντολών
  5. Υποστήριξη στο Shell Scripting

Χρησιμότητα

  1. Εύκολη δημιουργία GUI
  2. Λιγότερες δυνατότητες από άλλα πολύπλοκα εργαλεία
  3. Επιτρέπει σε σενάρια φλοιού να αλληλεπιδρούν με χρήστες GUI
  4. Είναι δυνατή η δημιουργία απλού διαλόγου για γραφική αλληλεπίδραση με τον χρήστη

Δεδομένου ότι το Zenity είναι διαθέσιμο για όλες τις γνωστές μεγάλες πλατφόρμες και με βάση τη βιβλιοθήκη GTK+, το πρόγραμμα Zenity μπορεί να μεταφερθεί προς/από άλλη πλατφόρμα.

Εγκατάσταση του Zenity σε Linux

Το Zentity είναι από προεπιλογή εγκατεστημένο ή διαθέσιμο στο χώρο αποθήκευσης του μεγαλύτερου μέρους της σημερινής τυπικής διανομής Linux. Μπορείτε να ελέγξετε εάν είναι εγκατεστημένο στο μηχάνημά σας ή όχι εκτελώντας τις ακόλουθες εντολές.

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

Εάν δεν είναι εγκατεστημένο, μπορείτε να το εγκαταστήσετε χρησιμοποιώντας την εντολή Apt ή Yum όπως φαίνεται παρακάτω.

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

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

Επιπλέον, μπορείτε επίσης να το δημιουργήσετε από τα αρχεία προέλευσης, να κάνετε λήψη του πιο πρόσφατου πακέτου πηγής Zenity (δηλαδή τρέχουσα έκδοση 3.8) χρησιμοποιώντας τον ακόλουθο σύνδεσμο.

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

Βασικά πλαίσια διαλόγου Zenity

Μερικοί από τους βασικούς διαλόγους του Zenity, οι οποίοι μπορούν να κληθούν απευθείας από τη γραμμή εντολών.

1. Τι θα λέγατε για έναν γρήγορο διάλογο ημερολογίου;
root@tecmint:~# zenity --calendar

2. Πλαίσιο διαλόγου σφάλματος
root@tecmint:~# zenity --error

3. Πλαίσιο διαλόγου εισαγωγής γενικού κειμένου
root@tecmint:~# zenity --entry

4. Ένας διάλογος πληροφοριών
root@tecmint:~# zenity --info

5. Πλαίσιο διαλόγου ερώτησης
root@tecmint:~# zenity --question

6. Μια γραμμή προόδου
root@tecmint:~# zenity --progress

7. Διάλογος κλίμακας
root@tecmint:~# zenity --scale

8. Ένας διάλογος κωδικού πρόσβασης
root@tecmint:~# zenity --password

9. Ένα πλαίσιο διαλόγου φόρμας
root@tecmint:~# zenity --forms

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

Δημιουργία διαλόγου Shell Script

Τώρα θα συζητούσαμε τη δημιουργία Zenity Dialog χρησιμοποιώντας απλά σενάρια φλοιού εδώ. Παρόλο που μπορούμε να δημιουργήσουμε μεμονωμένο παράθυρο διαλόγου εκτελώντας εντολές Zenity απευθείας από το κέλυφος (όπως κάναμε παραπάνω), αλλά στη συνέχεια δεν μπορούμε να συνδέσουμε δύο πλαίσια διαλόγου για να λάβουμε κάποιο ουσιαστικό αποτέλεσμα.

Τι θα λέγατε για ένα διαδραστικό πλαίσιο διαλόγου που λαμβάνει πληροφορίες από εσάς και δείχνει το αποτέλεσμα.

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

Αποθηκεύστε το στο ‘anything.sh’ (συμβατικά) και μην ξεχάσετε να το κάνετε εκτελέσιμο. Ορίστε δικαιώματα 755 στο αρχείο anything.sh και εκτελέστε το σενάριο.

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

Σχετικά με την περιγραφή σεναρίου

Το συμβατικό shebang γνωστό και ως hashbang

#!/bin/bash

Στην παρακάτω γραμμή «πρώτη» είναι μια μεταβλητή και η τιμή της μεταβλητής δημιουργείται κατά το χρόνο εκτέλεσης.

    1. Το «–entry» σημαίνει ότι ζητείται από το zenity να δημιουργήσει ένα πλαίσιο εισαγωγής κειμένου.
    2. Το "– title=" ορίζει τον τίτλο του πλαισίου κειμένου που δημιουργήθηκε.
    3. Το "—text=" ορίζει το κείμενο που είναι διαθέσιμο στο πλαίσιο Εισαγωγή κειμένου.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

Αυτή η γραμμή του παρακάτω αρχείου σεναρίου προορίζεται για τη δημιουργία πλαισίου διαλόγου πληροφοριών (–πληροφοριών), με τίτλο "Welcome" και κείμενο "Mr./Ms.first"

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

Αυτή η γραμμή του σεναρίου είναι Παρόμοια με τη γραμμή νούμερο δύο του σεναρίου, εκτός από το ότι εδώ ορίζεται μια νέα μεταβλητή «τελευταία».

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

Αυτή η τελευταία γραμμή του σεναρίου είναι και πάλι παρόμοια με την τρίτη γραμμή του σεναρίου και δημιουργεί Πλαίσιο διαλόγου πληροφοριών που περιέχει και τις δύο μεταβλητές "$first" και "$last".

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

Για περισσότερες πληροφορίες σχετικά με τον τρόπο δημιουργίας προσαρμοσμένων πλαισίων διαλόγου χρησιμοποιώντας σενάριο κελύφους, επισκεφτείτε την ακόλουθη σελίδα αναφοράς Zenity.

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

Στο επόμενο άρθρο θα ενσωματώναμε το Zenity με περισσότερο σενάριο κελύφους για αλληλεπίδραση χρήστη GUI. Μέχρι τότε, μείνετε συντονισμένοι και συνδεδεμένοι στο Tecmint. Μην ξεχάσετε να δώσετε τα πολύτιμα σχόλιά σας στην ενότητα σχολίων.