Δημιουργήστε το πρώτο σας GUI στην Python με το Glade και το GTK+

Βασικά Takeaways

  • Οι προγραμματιστές Python μπορούν να χρησιμοποιήσουν το GTK+ και το Glade για να δημιουργήσουν διαισθητικά γραφικά περιβάλλοντα χρησιμοποιώντας μια οπτική διεπαφή.
  • Η ρύθμιση του περιβάλλοντος για αυτό το παράδειγμα περιλαμβάνει την εγκατάσταση Python, GTK+, Glade και PyGObject.
  • Η χρήση του GTK+ και του Glade for Python GUI επιταχύνει τη διαδικασία και διαχωρίζει το σχεδιασμό GUI από τον κώδικα.

Η Python είναι μια προσβάσιμη γλώσσα που είναι ιδανική για ανάλυση δεδομένων και ανάπτυξη ιστού. Αλλά είναι μια εξαιρετική επιλογή και για την ανάπτυξη εφαρμογών GUI. Το GTK+ και το Glade απλοποιούν τη διαδικασία δημιουργίας απλών εφαρμογών πολλαπλών πλατφορμών.

GTK+ και Glade Interface Designer για προγραμματιστές Python

Το GTK+ (GIMP Toolkit) και το Glade Interface Designer είναι ένας καταπληκτικός συνδυασμός για προγραμματιστές Python που θέλουν να δημιουργήσουν εύχρηστα και ευχάριστα γραφικά περιβάλλοντα χρήστη.

Το GTK+ είναι μια εργαλειοθήκη πολλαπλών πλατφορμών που μπορείτε να χρησιμοποιήσετε για την ανάπτυξη GUI. Είναι συμβατό με μια ποικιλία λειτουργικών συστημάτων, συμπεριλαμβανομένων των Linux, Windows και macOS.

Το Glade Interface Designer, ένα συνοδευτικό εργαλείο του GTK+, σας επιτρέπει να σχεδιάζετε GUI χωρίς να χρειάζεται να γράψετε κώδικα διάταξης. Μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε ένα GUI σε περιβάλλον WYSIWYG με μερικά κλικ και απλές λειτουργίες μεταφοράς και απόθεσης.

Ρύθμιση του περιβάλλοντος Python σας για GTK+ και Ανάπτυξη Glade

Η ρύθμιση του περιβάλλοντος σας είναι ένα κρίσιμο πρώτο βήμα για να διασφαλίσετε μια ομαλή και αποτελεσματική ροή εργασίας.

1. Εγκαταστήστε την Python

Ξεκινήστε φροντίζοντας να έχετε εγκαταστήσει την Python στο σύστημά σας. Θα δείτε τον κώδικα Python 3 στα παραδείγματα που διαβάσατε, καθώς προσφέρει καλύτερη υποστήριξη και ενσωμάτωση για το GTK+ και το Glade. Για Linux και macOS, η Python είναι συνήθως προεγκατεστημένη.

  Πώς να χρησιμοποιήσετε ένα Raspberry Pi για να παρακολουθείτε τις θερμοκρασίες με ένα Sense HAT

Οι χρήστες των Windows μπορούν να κάνουν λήψη της Python από την επίσημη ιστοσελίδα της Python.

2. Εγκαταστήστε το GTK+

Μπορείτε να εγκαταστήσετε το GTK+ χρησιμοποιώντας έναν διαχειριστή πακέτων.

Για συστήματα Linux που βασίζονται σε Ubuntu και Debian χρησιμοποιήστε:

 sudo apt-get install libgtk-3-dev 

Για το Fedora και παρόμοια:

 sudo dnf install gtk3-devel 

Στο macOS, χρησιμοποιώντας το Homebrew:

 brew install gtk+3 

Οι χρήστες των Windows μπορούν να κάνουν λήψη του GTK+ από Η επίσημη σελίδα λήψης του GTK. Αλλά εάν έχετε εγκαταστήσει το MSYS2, μπορείτε να ανοίξετε τη γραμμή εντολών MSYS2 και να χρησιμοποιήσετε αυτήν την εντολή:

 pacman -S mingw-w64-x86_64-python-gobject 

3. Εγκαταστήστε το Glade

Μπορείτε να χρησιμοποιήσετε τη γραμμή εντολών για να εγκαταστήσετε το Glade.

Για διανομές Linux που βασίζονται σε Ubuntu και Debian:

 sudo apt-get install glade 

Στο Fedora:

 sudo dnf install glade 

Οι χρήστες macOS μπορούν να χρησιμοποιήσουν το Homebrew:

 brew install glade 

Οι χρήστες των Windows μπορούν να χρησιμοποιήσουν την ακόλουθη εντολή με το MSYS2:

 pacman -S mingw-w64-x86_64-glade 

4. Δεσμοί Python για GTK+

Εγκαταστήστε το PyGObject για να ενσωματώσετε το GTK+ με την Python. Η εντολή που θα χρησιμοποιήσετε για αυτό είναι:

 pip install PyGObject 

Εάν παρουσιαστεί ένα σφάλμα όπως “Δεν εκτελέστηκε το Building wheel for pycairo (pyproject.toml)” κατά την εγκατάσταση του PyGObject, θα χρειαστεί να εγκαταστήσετε και το πακέτο cairo.

Για διανομές Linux που βασίζονται σε Ubuntu και Debian:

 sudo apt-get install libcairo2-dev 

Για το Fedora:

 sudo yum install cairo-devel 

Στο macOS:

 brew install pygobject3 

5. Ρύθμιση εικονικού περιβάλλοντος (προαιρετικό)

Είναι καλή πρακτική να χρησιμοποιείτε ένα εικονικό περιβάλλον για τα έργα σας στην Python. Αυτό απομονώνει τις εξαρτήσεις του έργου σας. Δημιουργήστε και ενεργοποιήστε ένα εικονικό περιβάλλον στο Linux με αυτές τις εντολές τερματικού:

 python -m venv myenv
source myenv/bin/activate

Σε χρήση Windows:

 python -m venv myenv
myenv\Scripts\activate

Στο macOS, για να διασφαλίσετε ότι το εικονικό περιβάλλον μπορεί να έχει πρόσβαση στα πακέτα που εγκαθιστά την παρασκευή, χρησιμοποιήστε:

 python -m venv --system-site-packages myenv
source myenv/bin/activate

6. Επαλήθευση της εγκατάστασης

Για να επαληθεύσετε ότι το GTK+ και το Glade είναι εγκατεστημένα, δημιουργήστε ένα απλό σενάριο Python που εισάγει το GTK:

 import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

print("GTK+ version:", Gtk.get_major_version(), Gtk.get_minor_version())

Όταν εκτελείτε αυτό το σενάριο, θα βγάζει την εγκατεστημένη έκδοση GTK+. Εάν όλα πάνε καλά, έχετε δημιουργήσει το περιβάλλον ανάπτυξης σας.

  11 καλύτερα εργαλεία αναζήτησης διευθύνσεων MAC για κάθε ανάγκη

Δημιουργία απλής εφαρμογής GUI με το Glade Interface Designer και την Python

Μπορείτε να σχεδιάσετε την εφαρμογή GUI στο Glade Interface Designer και να εξαγάγετε τη διάταξη ως αρχείο έργου. Στη συνέχεια, μπορείτε να αποκτήσετε πρόσβαση σε αυτό το αρχείο του έργου από τον κώδικα Python.

Σχεδιάζοντας το GUI σας με το Glade

Η διεπαφή μεταφοράς και απόθεσης του Glade διευκολύνει την εστίαση στη σχεδίαση χωρίς να κολλήσετε στον υποκείμενο κώδικα. Ξεκινήστε το Glade από το μενού εφαρμογών ή τη γραμμή εντολών του συστήματός σας με αυτήν την εντολή:

 glade

Θα πρέπει να δείτε τη διεπαφή Glade όπου μπορείτε να ξεκινήσετε τη δημιουργία της διάταξης GUI σας.

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

Αρχικά, επιλέξτε το γραφικό στοιχείο GtkWindow από το μενού Toplevels:

Στη σελίδα Γενικά στη δεξιά γραμμή του Glade, θα δείτε μια επιλογή ID. Αυτό το αναγνωριστικό είναι το μοναδικό όνομα του γραφικού στοιχείου που προσθέσατε. Για αυτό το παράδειγμα, αντιστοιχίστε το αναγνωριστικό myMainWindow στο GtkWindow που προσθέσατε.

Τώρα μπορείτε να προσθέσετε γραφικά στοιχεία στο κύριο παράθυρο που έχετε δημιουργήσει. Μεταβείτε στα Containers στην επάνω γραμμή, επιλέξτε το γραφικό στοιχείο GtkBox και σύρετέ το στον χώρο εργασίας σας. Στη συνέχεια, δώστε του ένα ID, myMainBox.

  Πώς μπορώ να αφαιρέσω τον λογαριασμό μου PSN από άλλο PS4

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

Στη συνέχεια, προσθέστε ένα γραφικό στοιχείο Control στο σχέδιό σας. Για να το κάνετε αυτό, μεταβείτε στο Control στην επάνω γραμμή, επιλέξτε το GtkButton ως παράδειγμα και σύρετέ το οπουδήποτε στο GtkBox. Δώστε του ταυτότητα, myButton. Εάν θέλετε, μπορείτε επίσης να αλλάξετε το κείμενο του κουμπιού χρησιμοποιώντας την καρτέλα Γενικά στο δεξί πλαίσιο.

Το GtkButton είναι ένα γραφικό στοιχείο με δυνατότητα κλικ, ώστε να μπορείτε να ορίσετε έναν χειριστή Python για αυτό και να γράψετε τον κατάλληλο κώδικα αργότερα. Μεταβείτε στην καρτέλα Σήματα στο δεξί μενού και καθορίστε έναν χειριστή για το σήμα στο οποίο έγινε κλικ. Για αυτό το παράδειγμα, καλέστε το on_button_clicked.

Τώρα μπορείτε να αποθηκεύσετε το σχέδιο του GUI ως αρχείο έργου. Αποθηκεύστε το αρχείο ως myDesign.glade.

Χρήση του αρχείου σχεδίασης Glade από τον κώδικα Python

Δημιουργήστε ένα αρχείο app.py στον ίδιο κατάλογο με το αρχείο myDesign.glade. Επικολλήστε τον ακόλουθο κώδικα σε αυτό το αρχείο:

 import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdk

class MyApp:
    def __init__(self):

        

        self.builder = Gtk.Builder()
        self.builder.add_from_file("myDesign.glade")

        

        self.window = self.builder.get_object("myMainWindow")
        self.window.connect("destroy", Gtk.main_quit)

        

        self.button = self.builder.get_object("myButton")
        self.button.connect("clicked", self.on_button_clicked)

        

        self.color_toggle = False

    def on_button_clicked(self, widget):

        

        color = "#FF0000" if self.color_toggle else "#00FF00"
        self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(color))
        self.color_toggle = not self.color_toggle

    def run(self):
        self.window.show_all()
        Gtk.main()

if __name__ == "__main__":
    app = MyApp()
    app.run()

Αυτός ο κωδικός θα αλλάζει το χρώμα του φόντου κάθε φορά που κάνετε κλικ στο κουμπί. Σημειώστε τις κλήσεις προς self.builder.get_object() που μεταβιβάζουν τα αναγνωριστικά των γραφικών στοιχείων που ορίσατε στο Glade.

Εκτελέστε το σενάριο Python χρησιμοποιώντας αυτήν την εντολή για να δείτε το αποτέλεσμα:

 python3 app.py 

Πλεονεκτήματα της χρήσης GTK+ και Glade για Ανάπτυξη GUI Python

Η χρήση GTK+ και Glade για την ανάπτυξη GUI Python προσφέρει σαφή οφέλη. Συνήθως, η δημιουργία ενός GUI απαιτεί πολύ χρόνο και προσπάθεια. Αλλά με το Glade Interface Designer, μπορείτε να επιταχύνετε τη διαδικασία. Το Glade προσφέρει επίσης μια μεγάλη γκάμα γραφικών στοιχείων, το καθένα τόσο εύχρηστο όσο το κουμπί στο παράδειγμα.

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