Sviluppo di applicazioni con Python 3, Glade e GTK + 3 su Windows

Introduzione

In GNU / Linux lo sviluppo di applicazioni con Python 3, Glade e GTK + 3 è molto semplice, i pacchetti sono forniti di default nella maggior parte delle distribuzioni.

Attraverso Radura possiamo creare interfacce utente rapidamente e facilmente e quindi usarle insieme a Python. Per ottenere ciò si utilizza PyGObject grazie al sistema di introspezione offerto da GNOME, che rende molto più semplice lo sviluppo rapido di applicazioni (RAD); è anche possibile utilizzare le nostre interfacce create con Glade da altri linguaggi di programmazione.

Il problema si verifica quando vogliamo utilizzare le nostre applicazioni in Microsoft Windows, poiché fino a poco tempo fa non esistevano pacchetti ufficiali per questo sistema.

Con questo tutorial si intende che le applicazioni che sono state realizzate in GNU / Linux utilizzando Python 3 e GTK + 3 funzionino senza problemi in Windows.

requisiti

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 o successivo (GUI designer)
  • pigobject

Installazione su Windows

Inizierà creando una cartella chiamata Software o un altro di tua preferenza e salveremo in esso tutti i pacchetti che vengono scaricati.

Scarica i pacchetti di installazione

Scarica Python 3.3

Può essere scaricato dalla pagina ufficiale di Python www.python.org

Scarica il programma di installazione di Python

Scarica il programma di installazione di Python

Facendo clic sul collegamento (di Windows Installer) il programma di installazione di Python verrà scaricato.

Scarica Glade

Scarica il sito: glade.gnome.org

Entrambe le versioni di Python e Glade sono a 32 bit, ma funzionano perfettamente su sistemi a 64 bit

Glade Page

Glade Page

Scarica PyGObject

Scarica il sito: https://wiki.gnome.org/PyGObject

Dobbiamo scaricare la versione per GTK + 3

PyGObject

PyGObject

PyGObject nel codice Google

PyGObject nel codice Google

Installazione dei pacchetti

Fino a questo punto abbiamo già tutti i pacchetti scaricati nella cartella Software e poiché abbiamo scaricato ogni pacchetto inizieremo prima con l'installazione di Python.

Pacchetti scaricati

Pacchetti scaricati

Installazione di Python

L'installazione è molto semplice, la procedura guidata ci guiderà attraverso il processo; Lasciamo tutte le opzioni contrassegnate per impostazione predefinita.

Programma di installazione Python

Programma di installazione Python

Come si vede nell'immagine, Python è installato nella cartella C: \ Python33 \ Per impostazione predefinita, lo lasciamo così com'è e continuiamo con l'installazione.

Cartella di installazione di Python

Cartella di installazione di Python

A questo punto dell'installazione selezioniamo l'opzione Aggiungi python.exe a Path, con lo scopo che quando lanciamo un interprete Python viene eseguito senza la necessità di aggiungerlo manualmente al percorso di sistema.

Aggiungi Python al percorso di sistema

Aggiungi Python al percorso di sistema

Quindi finiamo l'installazione e Python sarà stato installato sul nostro sistema.

Installazione di Glade

L'installazione di Glade non rappresenta una grande complicazione, eseguiamo il programma di installazione e seguiamo i passaggi della procedura guidata.

Installa glade

Installa glade

Installazione di PyGObject

Avevamo scaricato il pacchetto pygi-aio-3.4.2rev11.7z, questo pacchetto include le librerie PyGObject per Python 3.3 e GTK + 3 per Windows, che è compresso con 7-zip, lo decomprimiamo e avremo una cartella con il seguente contenuto:

Contenuto della cartella pygi-aio-3.4.2rev11.7

Contenuto della cartella pygi-aio-3.4.2rev11.7

Ora copiamo la cartella gtk a C: \ Python33 \ Lib \ site-packages che è dove vengono installati i pacchetti di terze parti per Python.

Copia la cartella gtk

Copia la cartella gtk

Cartella Gtk in C: \ Python33 \ Lib \ site-packages

Cartella Gtk in C: \ Python33 \ Lib \ site-packages

Torniamo alla nostra cartella pygi-aio-3.4.2rev11 e apriamo la cartella py33 per la versione Python che è 3.3

Contenuto della cartella py33

Contenuto della cartella py33

Selezioniamo tutto il contenuto dalla cartella py33 e lo copiamo nuovamente nella cartella C: \ Python33 \ Lib \ site-packages, ci verrà chiesto di mescolare e sovrascrivere, rispondiamo affermativamente. Il contenuto della cartella pacchetti-sito sarebbe come mostrato nell'immagine seguente:

Copia il contenuto della cartella py33 in C: \ Python33 \ Lib \ site-packages

Copia il contenuto della cartella py33 in C: \ Python33 \ Lib \ site-packages

Verifica della corretta installazione di PyGobject e GTK + 3

Per verificare che la nostra installazione sia stata corretta, apriamo il Python IDLE e importiamo le librerie GTK + 3 e se non abbiamo alcun messaggio di errore tutto sarà stato fatto correttamente.

from gi.repository import Gtk

PyGobject e GTK + 3 installati correttamente

PyGobject e GTK + 3 installati correttamente


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   joaquin suddetto

    E perché GTK? Non sarebbe meglio sviluppare in QT? oltre ad essere multipiattaforma e in molti dicono che è il futuro

    1.    Artus suddetto

      Ebbene le due grandi librerie grafiche sul desktop GNU / Linux sono GTK e QT, ognuna sceglie quella che preferisce. Non c'è motivo di combattere.

      La differenza tra GTK e QT è che quest'ultimo è un framework, davvero molto buono, ma essendo un framework consuma un po 'più di risorse.

      Ad esempio Mozilla Firefox, Google Chrome, LibreOffice e un lungo eccetera sono realizzati con GTK; Ciò non significa che sia migliore di QT, ognuno dovrebbe scegliere quello che si adatta alle proprie preferenze ed esigenze, non vogliamo provocare una discussione al riguardo.

      1.    pandev92 suddetto

        Google Chrome dalla versione 33, lascia gtk.

  2.   Rolo suddetto

    e perché la spiegazione per Windows e non per Linux

    1.    Germán suddetto

      È perché in Linux tutto è già pacchettizzato e nei repository ufficiali di ogni distribuzione? In Fedora, ad esempio, ho già installato per impostazione predefinita Python 3, Gtk + 3 e PyGobject. Se voglio Glade, è solo "yum install glade". Facile vero? 🙂

    2.    Artus suddetto

      Perché, come dice Germán, per le distribuzioni GNU / Linux sono già pacchettizzati ed è molto facile installarli; per esempio installare glade in Debian è molto semplice:
      aptitude install glade

  3.   Marcelo suddetto

    Se voglio usare Python 2.7 i passaggi saranno gli stessi?
    Ovviamente, installando il Python 2.7 a 32 bit (anche se usi il sistema operativo a 64 bit) e al posto della cartella py33, il 2.7 andrebbe. Funzionerebbe?
    Grazie.

    1.    Artus suddetto

      Ebbene si, se hai un problema lasciami un commento.

      Luck.

      1.    Marcelo suddetto

        Grazie, ho già provato e per ora "Hello world" funziona per me.

        Vedo se riesco a ottenere qualche buon tutorial su pyGTK3 o come si chiama e qualsiasi problema, avviso.

          1.    Marcelo suddetto

            Caramba! Molte grazie!

          2.    Marcelo suddetto

            Testare GTK3 con Python 2.7 su Windows e seguire il tutorial. Finora tutti i programmi funzionano per me, tranne quello nel Capitolo 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Mi dà il seguente errore:
            Traceback (ultima chiamata più recente):
            File "C: \ Users \ User \ Desktop \ test.py", riga 24, in formato
            win = IconViewWindow ()
            File "C: \ Users \ User \ Desktop \ test.py", riga 19, in __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (icon, 64, 0)
            File "C: \ Python27 \ lib \ site-packages \ gi \ types.py", riga 47, in funzione
            return info.invoke (* args, ** kwargs)
            GError: icona "gtk-cut" non presente nel tema

            L'ho provato con altre icone e non funziona neanche. Devo installare un tema? Grazie fin d'ora.

          3.    Marcelo suddetto

            Nemmeno l'Esempio 19. Drag and Drop.

            La funzione che chiama in entrambi i casi ed è qui che ottengo un errore è:

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

            Non riesco a trovare l'icona, ma in altri esempi puoi usarli. Mi dà solo un errore quando voglio usarlo con quella funzione (qui icon_name può essere sostituito con un valore come Gtk.STOCK_CUT o qualsiasi altra cosa e dà esattamente lo stesso errore).

          4.    Marcelo suddetto

            Continuo a parlare da solo. Quello che funziona per me in altri esempi è che le immagini si caricano sui pulsanti. Non riesco a caricare le icone con la funzione fornita nei due esempi che ho fornito in precedenza.

          5.    Artus suddetto

            Penso che l'errore sia chiaro:
            GError: icona "gtk-cut" non presente nel tema

            Apparentemente quell'icona non è disponibile, usa un'altra icona. Probabilmente il manutentore del pacchetto non includeva le icone del tema o non può essere trovato nel percorso predefinito, usa una distribuzione GNU / Linux e verifica se lo stesso errore appare ancora.

            Per quanto riguarda la domanda 19, sembra essere correlata alla versione PyGobject, nella parte superiore della documentazione si dice:

            Note:
            Le versioni di PyGObject = 3.0.3 sono necessarie affinché i seguenti esempi funzionino.

            La versione che hai è 3.0, prova una distribuzione GNU / Linux; e poi dobbiamo aspettare che aggiornino il pacchetto (per Windows) o comunque lo puoi compilare da solo.

            Saluti e andiamo avanti.

          6.    Marcelo suddetto

            In Ubuntu tutti gli esempi di tutorial funzionano perfettamente per me. Su Windows, continua a non funzionare. Dovrò aspettare Un altro che non cammina è l'esempio dello Spinner, che non fa l'animazione. Saluti e grazie.

  4.   Giosuè suddetto

    Ho seguito il tutorial di installazione e installato tutto passo dopo passo.
    Ed eseguendo il codice seguente:
    da gi.repository importa Gtk

    classe Fiestra Principio:
    def __init __ (self):
    nomefile = "/ data / dam / esempi Python / Saudoform"
    costruttore = Gtk.builder ()
    costruttore.add_from_file (nomefile)
    #dictionary dove mettiamo in relazione il sinais con gli eventi
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    # Otteniamo un riferimento al descrittore XML per poter accedere
    self.label = self.widgets_widget ("Etichetta")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

    def button_click (self, widget):
    text = self.cadroTexto.get_text ()
    self.label.set_text ("wave% s"% text)

    se __name__ == »__ main__»:
    FiestraPrincipal ()
    Gtk.Main ()

    Ottengo questa risposta:
    Traceback (ultima chiamata più recente):
    File «C: / Users / admin / Google Drive / test / Saudo Form.py», riga 3, in
    da gi.repository importa Gtk
    File "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", riga 27, in
    da ._gi import _API, Repository
    ImportError: caricamento della DLL non riuscito:% 1 non è un'applicazione Win32 valida.

    Qualcuno sa qual è il problema o quale potrebbe essere la sua possibile soluzione.
    Grazie mille.

  5.   Gesù suddetto

    Interessante. Avevo fatto l'installazione in Linux, ma la spiegazione per Windows va bene, ora ce l'ho in entrambi. 😉

  6.   Raffaele Carmona suddetto

    È divertente per la prima volta su Windows 7 a 32 bit.
    Su Windows 7 a 64 bit, non riesco a farlo funzionare, lo capisco sempre;
    >>> da gi.repository importa Gtk
    Traceback (ultima chiamata più recente):
    File «», riga 1, in
    File "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", riga 27, in
    da ._gi import _API
    ImportError: caricamento della DLL non riuscito: il processo specificato non è stato trovato.

    L'ho provato comunque possibile, ho già perso l'illusione di installarlo.

    1.    Artus suddetto

      Vedrai che le librerie a 64 bit hanno ancora alcuni bug, installa la versione a 32 bit sia di python che di GTK + in modo da non avere problemi.

      Non dovresti mai perdere l'illusione 🙂

  7.   Richard suddetto

    Ciao sto lavorando con python + gtk3, va molto bene ora ho un piccolo problema, voglio cambiare l'icona nel mio modulo (finestra) in questo caso e posso cambiarlo, grazie in anticipo, Saluti

  8.   gio suddetto

    pubblica semplici video su come programmare in gtk + 3 e semplici tutorial di saluto

  9.   Jose suddetto

    Ottimo tutorial. Grazie mille per il tuo impegno. Saluti.

  10.   jkmilo1030 suddetto

    Ho fatto tutti i passaggi e quando sono andato a fidarmi dell'installazione ho ricevuto questo errore.

    Traceback (ultima chiamata più recente):
    File «», riga 1, in
    da gi.repository importa Gtk
    ImportError: nessun modulo denominato "gi"