Gtkdialog - Δημιουργία γραφικών (GTK+) διεπαφών και πλαισίων διαλόγου χρησιμοποιώντας σενάρια Shell στο Linux


Το Gtkdialog (ή gtkdialog) είναι ένα εξαιρετικό βοηθητικό πρόγραμμα ανοιχτού κώδικα για τη δημιουργία και τη δημιουργία διεπαφών και πλαισίων διαλόγου GTK+ με τη βοήθεια σεναρίων κελύφους Linux και τη χρήση βιβλιοθήκης GTK, καθώς και τη χρήση μιας σύνταξης που μοιάζει με xml, η οποία διευκολύνει τη δημιουργία διεπαφών χρησιμοποιώντας το gtkdialog. Είναι πολύ παρόμοιο με το πιο διάσημο εργαλείο που ονομάζεται Zenity, αλλά συνοδεύεται από ορισμένες χρήσιμες προσαρμόσιμες λειτουργίες που σας επιτρέπουν να δημιουργείτε εύκολα πολλά widget όπως vbox, hbox, κουμπί, πλαίσιο, κείμενο, μενού και πολλά άλλα.

Διαβάστε επίσης : Δημιουργήστε γραφικά πλαίσια διαλόγου GTK+ χρησιμοποιώντας το Zenity

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

Μπορείτε να κάνετε λήψη του gtkdialog-0.8.3 (που είναι η πιο πρόσφατη έκδοση) ή μπορείτε επίσης να χρησιμοποιήσετε την εντολή wget, να αποσυσκευάσετε το ληφθέν αρχείο και να εκτελέσετε αυτές τις παρακάτω εντολές για μεταγλώττιση από την πηγή.

sudo apt-get install build-essential		[on Debian based systems]
yum install gcc make gcc-c++			[on RedHat based systems]
wget https://gtkdialog.googlecode.com/files/gtkdialog-0.8.3.tar.gz
tar -xvf gtkdialog-0.8.3.tar.gz
cd gtkdialog-0.8.3/
./configure
make
sudo make install

Τώρα ας αρχίσουμε να δημιουργούμε μερικά πλαίσια, δημιουργήστε ένα νέο σενάριο "myprogram " στον αρχικό σας φάκελο.

Το πρώτο μου πρόγραμμα
cd
touch myprogram

Τώρα ανοίξτε το αρχείο "myprogram " χρησιμοποιώντας οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου θέλετε και προσθέστε τον ακόλουθο κώδικα σε αυτό.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My First Program" icon-name="gtk-about" resizable="true" width-request="300" height-request="310"> 

<vbox> 
	<hbox space-fill="true" space-expand="true"> 
		<button>	 
			<label>Welcome to TecMint.com Home!</label> 
			<action>echo "Welcome to TecMint.com Home!"</action> 
		</button> 
	</hbox> 
</vbox> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac 
------------

Αποθηκεύστε το αρχείο και ορίστε το δικαίωμα εκτέλεσης και εκτελέστε το όπως φαίνεται.

chmod 755 myprogram
./myprogram

Έτσι δημιουργήθηκε και εκτελέστηκε το πρώτο σας πρόγραμμα χρησιμοποιώντας το gtkdialog.

Τώρα, θα εξηγήσουμε εν συντομία τον κώδικα.

  1. #!/bin/bash: Η πρώτη γραμμή οποιουδήποτε σεναρίου φλοιού, χρησιμοποιείται για τον καθορισμό της διαδρομής του κελύφους του bash.
  2. GTKDIALOG=gtkdialog: Εδώ ορίσαμε μια μεταβλητή που θα τη χρησιμοποιήσουμε αργότερα κατά την εκτέλεση του σεναρίου φλοιού με το gtkdialog, αυτή η γραμμή πρέπει να βρίσκεται σε όλα τα σενάρια που δημιουργείτε χρησιμοποιώντας το gtkdialog.
  3. εξαγωγή MAIN_DIALOG=: Μια άλλη μεταβλητή που ορίσαμε η οποία θα περιέχει όλη τη σύνταξη για τη διεπαφή μας, μπορείτε να αντικαταστήσετε τη MAIN_DIALOG με όποιο όνομα θέλετε, αλλά πρέπει να την αντικαταστήσετε και στις 4 τελευταίες γραμμές του σεναρίου.
  4. Τίτλος παραθύρου: Νομίζω ότι αυτός ο κώδικας δεν χρειάζεται να εξηγηθεί, δημιουργήσαμε έναν τίτλο, ένα προεπιλεγμένο εικονίδιο για το παράθυρο, επιλέγουμε αν είχε δυνατότητα αλλαγής μεγέθους ή όχι και ορίσαμε το πλάτος και ύψος που θέλουμε, φυσικά όλες αυτές οι επιλογές είναι δευτερεύουσες, μπορείτε απλώς να χρησιμοποιήσετε την ετικέτα αν θέλετε.
  5. : Χρησιμοποιούμε την ετικέτα vbox για να δημιουργήσουμε ένα κατακόρυφο πλαίσιο, είναι σημαντικό να δημιουργήσουμε μια ετικέτα vbox ώστε να περιέχει άλλες ετικέτες όπως hbox και κουμπί κ.λπ.
  6. : Εδώ δημιουργήσαμε ένα οριζόντιο πλαίσιο χρησιμοποιώντας την ετικέτα , το "space-fill" και το "space-expand" είναι επιλογές για επέκταση του hbox μέσω του παραθύρου.
  7. <button>: Δημιουργήστε ένα νέο κουμπί.
  8. : Αυτό είναι το προεπιλεγμένο κείμενο για το κουμπί, κλείσαμε την ετικέτα ετικέτας χρησιμοποιώντας , φυσικά είναι πολύ σημαντικό να κλείσουμε όλες τις ετικέτες που χρησιμοποιούμε.
  9. : Αυτό συμβαίνει όταν κάνετε κλικ στο κουμπί, μπορείτε να εκτελέσετε μια εντολή φλοιού αν θέλετε ή να εκτελέσετε οποιοδήποτε άλλο αρχείο εάν θέλετε, υπάρχουν επίσης πολλές άλλες ενέργειες και σήματα, μην Μην ξεχάσετε να το κλείσετε χρησιμοποιώντας .
  10. : Για να κλείσετε την ετικέτα κουμπιού.
  11. : Για να κλείσετε την ετικέτα hbox.
  12. : Για να κλείσετε την ετικέτα παραθύρου.

Οι τελευταίες 4 γραμμές πρέπει επίσης να βρίσκονται σε όλα τα σενάρια φλοιού που δημιουργείτε χρησιμοποιώντας το gtkdialog, εκτελούν τη μεταβλητή MAIN_DIALOG χρησιμοποιώντας την εντολή gtkdialog με την επιλογή –center για να κεντράρετε το παράθυρο, πράγμα πολύ χρήσιμο.

Το δεύτερο πρόγραμμα μου

Ομοίως, δημιουργήστε ένα άλλο αρχείο και καλέστε το ως "δεύτερο πρόγραμμα" και προσθέστε το ακόλουθο ολόκληρο περιεχόμενο σε αυτό.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My Second Program" icon-name="gtk-about" resizable="true" width-request="250" height-request="150"> 

<vbox> 
	<hbox space-fill="true"> 
		<combobox>	 
			<variable>myitem</variable> 
			<item>First One</item> 
			<item>Second One</item> 
			<item>Third One</item> 
		</combobox> 
	</hbox> 
	<hbox> 
		<button> 
			<label>Click Me</label> 
			<action>echo "You choosed $myitem"</action> 
		</button> 
	</hbox> 
<hseparator width-request="240"></hseparator> 

	<hbox> 
		<button ok></button> 
	</hbox> 
</vbox> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac

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

chmod 755 secondprogram
./secondprogram

Τώρα, θα εξηγήσουμε εν συντομία τον κώδικα.

  1. Δημιουργούμε ένα γραφικό στοιχείο combobox χρησιμοποιώντας το , η ετικέτα είναι το προεπιλεγμένο όνομα της μεταβλητής στην οποία θα αποθηκευτεί το επιλεγμένο στοιχείο, χρησιμοποιήσαμε αυτήν τη μεταβλητή για να εκτυπώσουμε το επιλεγμένο στοιχείο αργότερα χρησιμοποιώντας echo.
  2. Το είναι ένα οριζόντιο διαχωριστικό, μπορείτε να ορίσετε το προεπιλεγμένο πλάτος για αυτό χρησιμοποιώντας την επιλογή πλάτους-αίτημα.
  3. Το είναι ένα κουμπί ΟΚ που θα κλείσει το παράθυρο μόλις το κάνετε κλικ, είναι πολύ χρήσιμο, επομένως δεν χρειάζεται να δημιουργήσουμε ένα προσαρμοσμένο κουμπί για να το κάνουμε αυτό.
Το Τρίτο μου Πργκοράμ

Δημιουργήστε ένα άλλο αρχείο με το όνομα ‘τρίτο πρόγραμμα’ και προσθέστε ολόκληρο το μάτσο κώδικα σε αυτό.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My Second Program" icon-name="gtk-about" resizable="true" width-request="250" height-request="150"> 

<notebook tab-label="First | Second|"> 
<vbox> 
	<hbox space-fill="true"> 
		<combobox>	 
			<variable>myitem</variable> 
			<item>First One</item> 
			<item>Second One</item> 
			<item>Third One</item> 
		</combobox> 
	</hbox> 
	<hbox> 
		<button> 
			<label>Click Me</label> 
			<action>echo "You choosed $myitem"</action> 
		</button> 
	</hbox> 
<hseparator width-request="240"></hseparator> 

	<hbox> 
		<button ok></button> 
	</hbox> 
</vbox> 

<vbox> 

	<hbox space-fill="true"> 
		<text> 
		<label>Spinbutton </label> 
		</text> 
	</hbox> 

	<hbox space-fill="true" space-expand="true"> 
		<spinbutton range-min="0" range-max="100" range-value="4"> 
			<variable>myscale</variable> 
			<action>echo $myscale</action> 
		</spinbutton> 
	</hbox> 

	<hbox> 
		<button ok></button> 
	</hbox> 

</vbox> 
</notebook> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac

Αποθηκεύστε το αρχείο, παραχωρήστε άδεια εκτέλεσης και ενεργοποιήστε το όπως φαίνεται.

chmod 755 thirdprogram
./thirdprogram

Εδώ, η εξήγηση του κώδικα με πιο λεπτομερή τρόπο.

  1. Δημιουργήσαμε δύο καρτέλες σημειωματάριου χρησιμοποιώντας το , η επιλογή tab-label είναι όπου μπορείτε να δημιουργήσετε καρτέλες, το gtkdialog θα δημιουργήσει καρτέλες ανάλογα με τις ετικέτες που εισάγετε, κάθε ορίζεται ως καρτέλα, οπότε η πρώτη καρτέλα ξεκινά με το πρώτη , η δεύτερη καρτέλα ξεκινά με τη δεύτερη .
  2. Το είναι ένα γραφικό στοιχείο κειμένου, χρησιμοποιήσαμε την ετικέτα
  3. Η ετικέτα θα δημιουργήσει ένα νέο κουμπί περιστροφής, η επιλογή range-min είναι η ελάχιστη τιμή και range-max είναι η μέγιστη τιμή για το κουμπί περιστροφής, range-value είναι η προεπιλεγμένη τιμή για την περιστροφή κουμπί.
  4. Δώσαμε μια μεταβλητή "myscale" στο .
  5. Εκτυπώσαμε την επιλεγμένη τιμή χρησιμοποιώντας echo και μεταβλητή $myscale, το προεπιλεγμένο σήμα για την ενέργεια εδώ είναι "value-changed" που μας βοήθησε να το κάνουμε αυτό.

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

Τεκμηρίωση Gtkdialog

Έχετε χρησιμοποιήσει το gtkdialog για να δημιουργήσετε GUI για τα σενάρια του κελύφους σας στο παρελθόν; Ή έχετε χρησιμοποιήσει κάποιο τέτοιο βοηθητικό πρόγραμμα για τη δημιουργία διεπαφών; Τι πιστεύετε γι 'αυτό;