Applicaties ontwikkelen met Python 3, Glade en GTK + 3 op Windows

Introducción

In GNU / Linux is het ontwikkelen van applicaties met Python 3, Glade en GTK + 3 erg eenvoudig, de pakketten worden standaard geleverd in de meeste distributies.

Gracias a Glade we kunnen gebruikersinterfaces snel en gemakkelijk maken en deze vervolgens gebruiken in combinatie met Python. Om dit te bereiken gebruik je PyGO-object dankzij het introspectie-systeem dat GNOME biedt, wat Rapid Application Development (RAD) veel gemakkelijker maakt; Het is ook mogelijk om onze interfaces gemaakt met Glade vanuit andere programmeertalen te gebruiken.

Het probleem doet zich voor wanneer we onze applicaties in Microsoft Windows willen gebruiken, aangezien de pakketten voor dit systeem tot voor kort officieel niet bestonden.

Met deze tutorial is het de bedoeling dat de applicaties die in GNU / Linux gemaakt zijn met Python 3 en GTK + 3 probleemloos draaien in Windows.

vereisten

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 of hoger (GUI-ontwerper)
  • pygobject

Installatie op Windows

Het begint met het maken van een map met de naam software of een andere van uw voorkeur en we zullen daarin alle pakketten opslaan die worden gedownload.

Download installatiepakketten

Python 3.3 downloaden

Het kan worden gedownload vanaf de officiële Python-pagina www.python.org

Download het Python-installatieprogramma

Download het Python-installatieprogramma

Door op de link (Windows Installer) wordt het Python-installatieprogramma gedownload.

Glade downloaden

Download site: glade.gnome.org

Zowel Python- als Glade-versies zijn 32-bits, maar werken zonder problemen op 64-bits systemen

Glade pagina

Glade pagina

Download PyGObject

Download site: https://wiki.gnome.org/PyGObject

We moeten de versie downloaden voor GTK + 3

PyGO-object

PyGO-object

PyGObject in Google-code

PyGObject in Google-code

De pakketten installeren

Tot nu toe hebben we alle gedownloade pakketten al in de map software en aangezien we elk pakket hebben gedownload, beginnen we eerst met de installatie van Python.

Gedownloade pakketten

Gedownloade pakketten

Python-installatie

De installatie is heel eenvoudig, de wizard zal ons door het proces leiden; We laten alle opties standaard aangevinkt.

Python installatieprogramma

Python installatieprogramma

Zoals te zien is in de afbeelding, wordt Python in de map geïnstalleerd C: \ Python33 \ Standaard laten we het zoals het is en gaan we verder met de installatie.

Python-installatiemap

Python-installatiemap

Op dit punt van de installatie selecteren we de optie Voeg python.exe toe aan Path, met het doel dat wanneer we een Python-interpreter starten, deze wordt uitgevoerd zonder dat deze handmatig aan het systeempad hoeft te worden toegevoegd.

Voeg Python toe aan het systeempad

Voeg Python toe aan het systeempad

Daarna voltooien we de installatie en is Python op ons systeem geïnstalleerd.

Glade Installatie

De installatie van Glade is geen grote complicatie, we draaien het installatieprogramma en volgen de stappen van de wizard.

Installeer glade

Installeer glade

PyGObject installatie

We hadden het pakket gedownload pygi-aio-3.4.2rev11.7z, dit pakket bevat PyGObject voor Python 3.3 en GTK + 3 bibliotheken voor Windows, dat is gecomprimeerd met 7-zip, we pakken het uit en we hebben een map met de volgende inhoud:

Inhoud van de map pygi-aio-3.4.2rev11.7

Inhoud van de map pygi-aio-3.4.2rev11.7

Nu kopiëren we de map gtk a C: \ Python33 \ Lib \ site-pakketten dat is waar de pakketten van derden voor Python zijn geïnstalleerd.

Kopieer de gtk-map

Kopieer de gtk-map

Gtk-map op C: \ Python33 \ Lib \ site-pakketten

Gtk-map op C: \ Python33 \ Lib \ site-pakketten

We gaan terug naar onze map pygi-aio-3.4.2rev11 en we openen de map py33 voor de Python-versie is dat 3.3

Inhoud van de py33-map

Inhoud van de py33-map

We selecteren alle inhoud map py33 en we kopiëren het terug naar de map C: \ Python33 \ Lib \ site-pakketten, wordt ons gevraagd om te mixen en te overschrijven, antwoorden we bevestigend. De inhoud van de map site-pakketten het zou zijn zoals weergegeven in de volgende afbeelding:

Kopieer de inhoud van de py33-map naar C: \ Python33 \ Lib \ site-packages

Kopieer de inhoud van de py33-map naar C: \ Python33 \ Lib \ site-packages

Controleren of PyGobject en GTK + 3 correct zijn geïnstalleerd

Om te controleren of onze installatie correct is, openen we Python IDLE en importeren we de GTK + 3 bibliotheken en als we geen foutmelding hebben, is alles correct gedaan.

from gi.repository import Gtk

PyGobject en GTK + 3 correct geïnstalleerd

PyGobject en GTK + 3 correct geïnstalleerd


24 reacties, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   joaquin zei

    En waarom GTK? Zou het niet beter zijn om te ontwikkelen in QT? Behalve dat het multiplatform is en velen zeggen dat het de toekomst is

    1.    artus zei

      Welnu, de twee geweldige grafische bibliotheken op de GNU / Linux-desktop zijn GTK en QT, elk kiest degene die ze verkiezen. Er is geen reden om te vechten.

      Het verschil tussen GTK en QT is dat het laatste een raamwerk is, heel goed, maar als raamwerk verbruikt het iets meer bronnen.

      Zo worden Mozilla Firefox, Google Chrome, LibreOffice en nog veel meer gemaakt met GTK; Dit betekent niet dat het beter is dan QT, iedereen moet degene kiezen die bij zijn voorkeuren en behoeften past, we willen er geen discussie over veroorzaken.

      1.    pandev92 zei

        Google Chrome vanaf versie 33, verlaat gtk.

  2.   Rolo zei

    en waarom de uitleg voor windows en niet voor linux

    1.    Germán zei

      Is het omdat in Linux alles al is verpakt en in de officiële repositories van elke distro? In Fedora heb ik bijvoorbeeld al Python 3, Gtk + 3 en PyGobject standaard geïnstalleerd. Als ik Glade wil, is het gewoon "yum install glade". Makkelijk toch? 🙂

    2.    artus zei

      Omdat, zoals Germán zegt, ze voor GNU / Linux-distributies al verpakt zijn en het heel gemakkelijk is om ze te installeren; het installeren van glade in Debian is bijvoorbeeld heel eenvoudig:
      aptitude install glade

  3.   Marcelo zei

    Als ik Python 2.7 wil gebruiken, zijn de stappen dan hetzelfde?
    Het is duidelijk dat het installeren van de 2.7-bits Python 32 (zelfs als je het 64-bits besturingssysteem gebruikt) en in plaats van de py33-map, de 2.7 zou gaan. Zou het werken?
    Dank u.

    1.    artus zei

      Nou ja, als je een probleem hebt, laat dan een reactie achter.

      Luck.

      1.    Marcelo zei

        Bedankt, ik heb het al geprobeerd en voorlopig werkt de "Hallo wereld" voor mij.

        Ik kijk of ik een goede pyGTK3-tutorial kan krijgen of hoe het ook wordt genoemd en eventuele problemen, waarschuwing

          1.    Marcelo zei

            Caramba! Heel erg bedankt!

          2.    Marcelo zei

            GTK3 testen met Python 2.7 op Windows en de tutorial volgen. Tot dusver werken alle programma's voor mij, behalve die in hoofdstuk 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Het geeft me de volgende foutmelding:
            Hertraceren (meest recente oproep als laatste)
            Bestand "C: \ Users \ User \ Desktop \ test.py", regel 24, in
            win = IconViewWindow ()
            Bestand "C: \ Users \ User \ Desktop \ test.py", regel 19, in __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (pictogram, 64, 0)
            Bestand "C: \ Python27 \ lib \ site-packages \ gi \ types.py", regel 47, in functie
            terug info.invoke (* args, ** kwargs)
            GError: pictogram 'gtk-cut' niet aanwezig in thema

            Ik heb het geprobeerd met andere pictogrammen en het werkt ook niet. Moet ik een thema installeren? Bedankt sinds nu.

          3.    Marcelo zei

            Voorbeeld 19 ook niet. Slepen en neerzetten.

            De functie die in beide gevallen aanroept en dat is waar ik een foutmelding krijg, is:

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

            Ik kan het pictogram niet vinden, maar in andere voorbeelden kun je ze gebruiken. Het geeft me alleen een fout als ik het met die functie wil gebruiken (hier kan icon_name worden vervangen door een waarde zoals Gtk.STOCK_CUT of wat dan ook en het geeft precies dezelfde fout).

          4.    Marcelo zei

            Ik blijf tegen mezelf praten. Wat in andere voorbeelden voor mij werkt, is dat de afbeeldingen op de knoppen worden geladen. Ik kan de pictogrammen niet laden met de functie die voorkomt in de twee voorbeelden die ik eerder heb gegeven.

          5.    artus zei

            Ik denk dat de fout duidelijk is:
            GError: pictogram 'gtk-cut' niet aanwezig in thema

            Blijkbaar is dat pictogram niet beschikbaar, gebruik een ander pictogram. Waarschijnlijk heeft de onderhouder van het pakket de themapictogrammen niet opgenomen of kan het niet worden gevonden in het standaardpad, gebruik dan een GNU / Linux-distributie en kijk of dezelfde fout nog steeds verschijnt.

            Met betrekking tot vraag 19 lijkt het verband te houden met de PyGobject-versie, bovenaan de documentatie staat:

            Note
            Versies van PyGObject = 3.0.3 zijn vereist om de volgende voorbeelden te laten werken.

            De versie die je hebt is 3.0, probeer een GNU / Linux-distributie; en dan moeten we wachten tot ze het pakket (voor Windows) updaten of je kunt het in ieder geval zelf compileren.

            Groeten en ga verder.

          6.    Marcelo zei

            In Ubuntu werken alle tutorialvoorbeelden perfect voor mij. Op Windows werkt het nog steeds niet. Ik zal moeten wachten. Een andere die niet loopt, is het voorbeeld van de Spinner, die de animatie niet doet. Groeten en bedankt.

  4.   Jozua zei

    Ik heb de installatiehandleiding gevolgd en alles stap voor stap geïnstalleerd.
    En het uitvoeren van de volgende code:
    van gi.repository import Gtk

    klasse Fiestra Principal:
    def __init __ (zelf):
    filename = "/ data / dam / Python-voorbeelden / Saudoform"
    constructor = Gtk.builder ()
    constructor.add_from_file (bestandsnaam)
    #dictionary waar we sinais in verband brengen met gebeurtenissen
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    #We krijgen een verwijzing naar de XML-descriptor om toegang te krijgen
    self.label = self.widgets_widget ("Label")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

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

    if __name__ == »__ main__»:
    Fiestra Hoofd ()
    Gtk.Main ()

    Ik krijg dit antwoord:
    Hertraceren (meest recente oproep als laatste)
    Bestand «C: / Users / admin / Google Drive / test / SaudoForm.py», regel 3, in
    van gi.repository import Gtk
    Bestand "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", regel 27, in
    van ._gi import _API, Repository
    ImportError: DLL-laden mislukt:% 1 is geen geldige Win32-toepassing.

    Iemand weet wat het probleem is, of wat de mogelijke oplossing is.
    Heel hartelijk bedankt.

  5.   Jezus zei

    Interessant. Ik had de installatie in linux gedaan, maar de uitleg voor windows is prima, nu heb ik het in beide. 😉

  6.   Rafael Carmona zei

    Het is de eerste keer grappig op een 7-bits Windows 32.
    Op een Windows 7 64-bit kan ik het niet laten draaien, ik snap het altijd;
    >>> van gi.repository import Gtk
    Hertraceren (meest recente oproep als laatste)
    Bestand «», regel 1, in
    Bestand "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", regel 27, in
    van ._gi import _API
    ImportError: DLL-laden mislukt: het opgegeven proces is niet gevonden.

    Ik heb het hoe dan ook geprobeerd, ik ben de illusie al kwijtgeraakt het te installeren.

    1.    artus zei

      Je zult zien dat de 64-bit-bibliotheken nog steeds enkele bugs bevatten, installeer de 32-bit-versie van zowel Python als GTK + zodat je geen problemen hebt.

      Je mag de illusie nooit verliezen 🙂

  7.   Richard zei

    Hallo, ik werk met python + gtk3, het is erg goed nu ik een klein probleempje heb.Ik wil in dit geval het pictogram wijzigen in mijn formulier (venster) en ik kan het wijzigen, bij voorbaat dank, groeten

  8.   joris zei

    publiceer eenvoudige video's over hoe te programmeren in gtk + 3 en eenvoudige tutorials-begroetingen

  9.   Jose zei

    Uitstekende tutorial. Heel erg bedankt voor je inzet. Vriendelijke groeten.

  10.   jkmilo1030 zei

    Ik heb alle stappen uitgevoerd en toen ik de installatie ging vertrouwen, kreeg ik deze foutmelding.

    Hertraceren (meest recente oproep als laatste)
    Bestand «», regel 1, in
    van gi.repository import Gtk
    ImportError: geen module met de naam 'gi'