Ανάπτυξη εφαρμογών με Python 3, Glade και GTK + 3 σε Windows

Εισαγωγή

Στο GNU / Linux η ανάπτυξη εφαρμογών με Python 3, Glade και GTK + 3 είναι πολύ εύκολη, τα πακέτα έρχονται από προεπιλογή στις περισσότερες διανομές.

Μέσω Ξέφωτο μπορούμε να δημιουργήσουμε διεπαφές χρήστη γρήγορα και εύκολα και στη συνέχεια να τις χρησιμοποιήσουμε σε συνδυασμό με την Python. Για να το πετύχετε αυτό χρησιμοποιείτε PyGObject χάρη στο σύστημα ενδοσκόπησης που προσφέρει το GNOME, το οποίο διευκολύνει σημαντικά την ταχεία ανάπτυξη εφαρμογών (RAD). Είναι επίσης δυνατή η χρήση των διεπαφών μας που έχουν δημιουργηθεί με το Glade από άλλες γλώσσες προγραμματισμού.

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

Με αυτό το σεμινάριο, οι εφαρμογές που έχουν γίνει στο GNU / Linux χρησιμοποιώντας Python 3 και GTK + 3 εκτελούνται χωρίς προβλήματα στα Windows.

Απαιτήσεις

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 ή υψηλότερη (σχεδιαστής GUI)
  • pygobject

Εγκατάσταση σε Windows

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

Λήψη πακέτων εγκατάστασης

Λήψη Python 3.3

Μπορείτε να το κατεβάσετε από την επίσημη σελίδα Python python.org

Κατεβάστε το πρόγραμμα εγκατάστασης Python

Κατεβάστε το πρόγραμμα εγκατάστασης Python

Κάνοντας κλικ στο σύνδεσμο (windows Installer) θα γίνει λήψη του προγράμματος εγκατάστασης Python.

Λήψη Glade

Λήψη ιστότοπου: glade.gnome.org

Και οι δύο εκδόσεις Python και Glade είναι 32-bit, αλλά λειτουργούν άψογα σε συστήματα 64-bit

Σελίδα ξέφωτο

Σελίδα ξέφωτο

Κατεβάστε το PyGObject

Λήψη ιστότοπου: https://wiki.gnome.org/PyGObject

Πρέπει να κατεβάσετε την έκδοση για το GTK + 3

PyGObject

PyGObject

PyGObject στον κώδικα Google

PyGObject στον κώδικα Google

Εγκατάσταση των πακέτων

Μέχρι τώρα έχουμε ήδη όλα τα ληφθέντα πακέτα στο φάκελο λογισμικό και καθώς έχουμε κατεβάσει κάθε πακέτο, θα ξεκινήσουμε πρώτα με την εγκατάσταση του Python.

Λήψη πακέτων

Λήψη πακέτων

Εγκατάσταση Python

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

Πρόγραμμα εγκατάστασης Python

Πρόγραμμα εγκατάστασης Python

Όπως φαίνεται στην εικόνα, η Python εγκαθίσταται στο φάκελο C: \ Python33 \ Από προεπιλογή, το αφήνουμε ως έχει και συνεχίζουμε με την εγκατάσταση.

Φάκελος εγκατάστασης Python

Φάκελος εγκατάστασης Python

Σε αυτό το σημείο της εγκατάστασης επιλέγουμε την επιλογή Προσθήκη python.exe στο Path, με σκοπό να εκκινήσουμε έναν διερμηνέα Python χωρίς να χρειάζεται να το προσθέσουμε στη διαδρομή του συστήματος χειροκίνητα.

Προσθέστε το Python στη διαδρομή συστήματος

Προσθέστε το Python στη διαδρομή συστήματος

Στη συνέχεια ολοκληρώνουμε την εγκατάσταση και το Python θα έχει εγκατασταθεί στο σύστημά μας.

Εγκατάσταση Glade

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

Εγκαταστήστε ξέφωτο

Εγκαταστήστε ξέφωτο

Εγκατάσταση PyGObject

Είχαμε κατεβάσει το πακέτο pygi-aio-3.4.2rev11.7z, αυτό το πακέτο περιλαμβάνει βιβλιοθήκες PyGObject για Python 3.3 και GTK + 3 για Windows, η οποία συμπιέζεται με 7-zip, αποσυμπιέστε και θα έχουμε έναν φάκελο με το ακόλουθο περιεχόμενο:

Περιεχόμενα του φακέλου pygi-aio-3.4.2rev11.7

Περιεχόμενα του φακέλου pygi-aio-3.4.2rev11.7

Τώρα αντιγράφουμε το φάκελο gtk a C: \ Python33 \ Lib \ πακέτα ιστότοπων όπου είναι εγκατεστημένα τα πακέτα τρίτων για το Python.

Αντιγραφή φακέλου gtk

Αντιγραφή φακέλου gtk

Φάκελος Gtk στο C: \ Python33 \ Lib \ site-πακέτα

Φάκελος Gtk στο C: \ Python33 \ Lib \ site-πακέτα

Επιστρέφουμε στον φάκελό μας pygi-aio-3.4.2rev11 και ανοίγουμε το φάκελο py33 για την έκδοση Python που είναι 3.3

Περιεχόμενα του φακέλου py33

Περιεχόμενα του φακέλου py33

Επιλέγουμε όλο το περιεχόμενο από το φάκελο py33 και το αντιγράφουμε πίσω στο φάκελο C: \ Python33 \ Lib \ πακέτα ιστότοπων, θα μας ζητηθεί να συνδυάσουμε και να αντικαταστήσουμε, θα απαντήσουμε καταφατικά. Τα περιεχόμενα του φακέλου πακέτα ιστότοπου θα ήταν όπως φαίνεται στην ακόλουθη εικόνα:

Αντιγράψτε τα περιεχόμενα του φακέλου py33 στο C: \ Python33 \ Lib \ site-πακέτα

Αντιγράψτε τα περιεχόμενα του φακέλου py33 στο C: \ Python33 \ Lib \ site-πακέτα

Έλεγχος της σωστής εγκατάστασης των PyGobject και GTK + 3

Για να επαληθεύσουμε ότι η εγκατάσταση μας ήταν σωστή, ανοίγουμε το Python IDLE και εισάγουμε τις βιβλιοθήκες GTK + 3 και αν δεν έχουμε κανένα μήνυμα σφάλματος, όλα θα έχουν γίνει σωστά.

from gi.repository import Gtk

Το PyGobject και το GTK + 3 έχουν εγκατασταθεί σωστά

Το PyGobject και το GTK + 3 έχουν εγκατασταθεί σωστά


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   joaquin dijo

    Και γιατί το GTK; Δεν θα ήταν καλύτερο να αναπτυχθεί στο QT; εκτός από το ότι είναι πολλαπλές μορφές και πολλοί λένε ότι είναι το μέλλον

    1.    artus dijo

      Λοιπόν, οι δύο υπέροχες βιβλιοθήκες γραφικών στην επιφάνεια εργασίας GNU / Linux είναι GTK και QT, καθένας επιλέγει αυτή που προτιμά. Δεν υπάρχει λόγος να πολεμήσεις.

      Η διαφορά μεταξύ GTK και QT είναι ότι το τελευταίο είναι ένα πλαίσιο, πράγματι πολύ καλό, αλλά ως πλαίσιο καταναλώνει λίγο περισσότερους πόρους.

      Για παράδειγμα, το Mozilla Firefox, το Google Chrome, το LibreOffice και ένα μακρύ κλπ είναι κατασκευασμένα με GTK. Αυτό δεν σημαίνει ότι είναι καλύτερο από το QT, όλοι πρέπει να επιλέξουν αυτό που ταιριάζει στις προτιμήσεις και τις ανάγκες τους, δεν θέλουμε να κάνουμε μια συζήτηση για αυτό.

      1.    pandev92 dijo

        Google chrome από την έκδοση 33, αφήστε το gtk.

  2.   Rolo dijo

    και γιατί η εξήγηση για windows και όχι linux

    1.    Germán dijo

      Είναι επειδή στο Linux όλα είναι ήδη συσκευασμένα και στα επίσημα αποθετήρια κάθε διανομής; Στο Fedora, για παράδειγμα, έχω ήδη εγκαταστήσει τα Python 3, Gtk + 3 και PyGobject από προεπιλογή. Αν θέλω Glade, είναι απλώς "yum install glade". Εύκολο, σωστά; 🙂

    2.    artus dijo

      Διότι, όπως λέει ο Germán, για διανομές GNU / Linux είναι ήδη συσκευασμένες και είναι πολύ εύκολο να τις εγκαταστήσετε. Για παράδειγμα, η εγκατάσταση του glade στο Debian είναι πολύ απλή:
      ικανότητα εγκατάστασης ξέφωτο

  3.   Μαρσέλο dijo

    Αν θέλω να χρησιμοποιήσω το Python 2.7 θα είναι τα ίδια βήματα;
    Προφανώς, η εγκατάσταση του Python 2.7 32-bit (ακόμα κι αν χρησιμοποιείτε το λειτουργικό σύστημα 64-bit) και αντί του φακέλου py33, το 2.7 θα πάει. Θα λειτουργούσε;
    Σας ευχαριστώ.

    1.    artus dijo

      Λοιπόν ναι, αν έχετε κάποιο πρόβλημα, αφήστε μου ένα σχόλιο.

      Τύχη.

      1.    Μαρσέλο dijo

        Ευχαριστώ, το δοκίμασα και προς το παρόν το "Hello world" λειτουργεί για μένα.

        Βλέπω αν μπορώ να λάβω οποιοδήποτε καλό σεμινάριο pyGTK3 ή οτιδήποτε ονομάζεται και τυχόν προβλήματα, προειδοποίηση.

          1.    Μαρσέλο dijo

            Καράμπα! Ευχαριστώ πολύ!

          2.    Μαρσέλο dijo

            Δοκιμή GTK3 με Python 2.7 στα Windows και μετά το σεμινάριο. Μέχρι στιγμής όλα τα προγράμματα λειτουργούν για μένα, εκτός από αυτό στο Κεφάλαιο 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Μου δίνει το ακόλουθο σφάλμα:
            Traceback (πιο πρόσφατη τελευταία κλήση):
            Αρχείο "C: \ Users \ User \ Desktop \ test.py", γραμμή 24, σε
            win = IconViewWindow ()
            Αρχείο "C: \ Users \ User \ Desktop \ test.py", γραμμή 19, σε __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (εικονίδιο, 64, 0)
            Αρχείο "C: \ Python27 \ lib \ site-package \ gi \ types.py", γραμμή 47, σε λειτουργία
            επιστροφή info.invoke (* args, ** kwargs)
            GError: Το εικονίδιο "gtk-cut" δεν υπάρχει στο θέμα

            Το δοκίμασα με άλλα εικονίδια και δεν λειτουργεί. Πρέπει να εγκαταστήσω ένα θέμα; Ευχαριστώ από τώρα.

          3.    Μαρσέλο dijo

            Ούτε το Παράδειγμα 19. Μεταφορά και απόθεση.

            Η συνάρτηση που καλεί και στις δύο περιπτώσεις και εκεί όπου λαμβάνω ένα σφάλμα είναι:

            pixbuf = Gtk.IconTheme.get_default (). load_icon (icon_name, 16, 0)

            Δεν μπορώ να βρω το εικονίδιο, αλλά σε άλλα παραδείγματα μπορείτε να τα χρησιμοποιήσετε. Μου δίνει ένα σφάλμα μόνο όταν θέλω να το χρησιμοποιήσω με αυτήν τη λειτουργία (εδώ το icon_name μπορεί να αντικατασταθεί με μια τιμή όπως το Gtk.STOCK_CUT ή οτιδήποτε άλλο και δίνει ακριβώς το ίδιο σφάλμα).

          4.    Μαρσέλο dijo

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

          5.    artus dijo

            Νομίζω ότι το σφάλμα είναι σαφές:
            GError: Το εικονίδιο "gtk-cut" δεν υπάρχει στο θέμα

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

            Όσον αφορά την ερώτηση 19, φαίνεται να σχετίζεται με την έκδοση PyGobject, στην κορυφή της τεκμηρίωσης αναφέρει:

            Note
            Απαιτούνται εκδόσεις του PyGObject = 3.0.3 για να λειτουργούν τα ακόλουθα παραδείγματα.

            Η έκδοση που έχετε είναι 3.0, δοκιμάστε μια διανομή GNU / Linux. και τότε πρέπει να περιμένουμε να ενημερώσουν το πακέτο (για Windows) ή σε κάθε περίπτωση μπορείτε να το μεταγλωττίσετε μόνοι σας.

            Χαιρετίσματα και προχωρήστε.

          6.    Μαρσέλο dijo

            Στο Ubuntu όλα τα παραδείγματα φροντιστηρίων λειτουργούν τέλεια για μένα. Στα Windows, εξακολουθεί να μην λειτουργεί. Θα πρέπει να περιμένω. Ένα άλλο που δεν περπατά είναι το παράδειγμα του Spinner, το οποίο δεν κάνει το animation. Χαιρετισμούς και ευχαριστίες.

  4.   Γιουσούα dijo

    Ακολούθησα το σεμινάριο εγκατάστασης και έχω εγκαταστήσει τα πάντα βήμα προς βήμα.
    Και εκτελώντας τον ακόλουθο κώδικα:
    από gi.repository import Gtk

    τάξη Fiestra
    def __init __ (αυτο):
    όνομα αρχείου = "/ δεδομένα / φράγμα / παραδείγματα Python / Saudoform"
    κατασκευαστής = Gtk.builder ()
    constructor.add_from_file (όνομα αρχείου)
    # dictionary όταν συνδέουμε το sinais με εκδηλώσεις
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    # Παίρνουμε μια αναφορά στον περιγραφέα XML για να έχουμε πρόσβαση
    self.label = self.widgets_widget ("Ετικέτα")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

    def button_click (self, widget):
    κείμενο = self.cadroTexto.get_text ()
    self.label.set_text ("%% s"% κείμενο)

    αν __name__ == »__ main__»:
    FiestraPrincipal ()
    Gtk. Κύρια ()

    Παίρνω αυτήν την απάντηση:
    Traceback (πιο πρόσφατη τελευταία κλήση):
    Αρχείο «C: / Users / admin / Google Drive / test / SaudoForm.py», γραμμή 3, σε
    από gi.repository import Gtk
    Αρχείο "C: \ Python33 \ lib \ site-package \ gi \ __ init__.py", γραμμή 27, σε
    από ._gi εισαγωγή _API, αποθετήριο
    ImportError: Η φόρτωση DLL απέτυχε: Το% 1 δεν είναι έγκυρη εφαρμογή Win32.

    Κάποιος ξέρει ποιο είναι το πρόβλημα ή ποια είναι η πιθανή λύση του.
    Σας ευχαριστώ πολύ.

  5.   Ιησούς dijo

    Ενδιαφέρων. Είχα κάνει την εγκατάσταση στο linux, αλλά η εξήγηση για τα παράθυρα είναι μια χαρά, τώρα το έχω και στα δύο. 😉

  6.   Ράφα Καρμόνα dijo

    Είναι αστείο σε 7-bit windows 32 την πρώτη φορά.
    Σε Windows 7 64-bit, δεν μπορώ να το κάνω να τρέχει, το παίρνω πάντα.
    >>> από gi.repository εισαγωγή Gtk
    Traceback (πιο πρόσφατη τελευταία κλήση):
    Αρχείο «», γραμμή 1, σε
    Αρχείο "C: \ Python33 \ lib \ site-package \ gi \ __ init__.py", γραμμή 27, σε
    από ._gi εισαγωγή _API
    ImportError: Αποτυχία φόρτωσης DLL: Η καθορισμένη διαδικασία δεν βρέθηκε.

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

    1.    artus dijo

      Θα δείτε ότι οι βιβλιοθήκες 64-bit εξακολουθούν να έχουν κάποια σφάλματα, εγκαταστήστε την έκδοση 32-bit τόσο του python όσο και του GTK +, ώστε να μην έχετε προβλήματα.

      Δεν πρέπει ποτέ να χάσετε την ψευδαίσθηση 🙂

  7.   Richard dijo

    Γεια δουλεύω με το python + gtk3, είναι πολύ καλό τώρα που έχω ένα μικρό πρόβλημα, θέλω να αλλάξω το εικονίδιο στη φόρμα μου (παράθυρο) σε αυτήν την περίπτωση και μπορώ να το αλλάξω, ευχαριστώ εκ των προτέρων, Χαιρετισμούς

  8.   Τζορς dijo

    δημοσιεύστε απλά βίντεο σχετικά με τον τρόπο προγραμματισμού στο gtk + 3 και απλούς χαιρετισμούς σεμιναρίων

  9.   jose dijo

    Εξαιρετικό σεμινάριο. Ευχαριστώ πολύ για την προσπάθειά σας. Χαιρετισμοί.

  10.   jkmilo1030 dijo

    Έκανα όλα τα βήματα και όταν πήγα να εμπιστευτώ την εγκατάσταση πήρα αυτό το σφάλμα.

    Traceback (πιο πρόσφατη τελευταία κλήση):
    Αρχείο «», γραμμή 1, σε
    από gi.repository import Gtk
    ImportError: Καμία ενότητα με το όνομα «gi»