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


Αναζητάτε έναν απλό τρόπο για να δημιουργήσετε όμορφες εφαρμογές GUI; Η Python, το GTK+ και το Glade μπορούν να κάνουν τη δουλειά.

Βασικά 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 είναι συνήθως προεγκατεστημένη.

Οι χρήστες των 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

Εάν παρουσιαστεί σφάλμα όπως "Δεν εκτελέστηκε ο τροχός δόμησης για το 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+. Εάν όλα πάνε καλά, έχετε δημιουργήσει το περιβάλλον ανάπτυξης σας.

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

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

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

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

glade

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

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

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

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

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

Αφού προσθέσετε το γραφικό στοιχείο 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):
        # Load the Glade file to construct the GUI
        self.builder = Gtk.Builder()
        self.builder.add_from_file("myDesign.glade")

        # Retrieve the main window from Glade and set up the close event
        self.window = self.builder.get_object("myMainWindow")
        self.window.connect("destroy", Gtk.main_quit)

        # Retrieve the button from Glade and connect the click event
        self.button = self.builder.get_object("myButton")
        self.button.connect("clicked", self.on_button_clicked)

        # Variable to toggle the background color
        self.color_toggle = False
    def on_button_clicked(self, widget):
        # Click the button and the background color will change
        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 απλούστερη. Αυτή η προσέγγιση οδηγεί σε καθαρότερο, καλύτερα οργανωμένο κώδικα, σύμφωνα με τις σύγχρονες πρακτικές προγραμματισμού.