Utvikler applikasjoner med Python 3, Glade og GTK + 3 på Windows

Innledning

I GNU / Linux er det veldig enkelt å utvikle applikasjoner med Python 3, Glade og GTK + 3, pakkene kommer som standard i de fleste distribusjoner.

Takk til glade vi kan lage brukergrensesnitt raskt og enkelt og deretter bruke dem i forbindelse med Python. For å oppnå dette bruker du PyGObject takket være introspeksjonssystemet som GNOME tilbyr, noe som gjør Rapid Application Development (RAD) mye enklere; det er også mulig å bruke våre grensesnitt opprettet med Glade fra andre programmeringsspråk.

Problemet oppstår når vi vil bruke programmene våre i Microsoft Windows, siden det til nylig ikke var noen offisielle pakker for dette systemet.

Med denne opplæringen er det ment at applikasjonene som er laget i GNU / Linux ved bruk av Python 3 og GTK + 3 kjører uten problemer i Windows.

krav

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 eller høyere (GUI designer)
  • pygoobjekt

Installasjon på Windows

Det starter med å lage en mappe som heter programvare eller en annen av dine preferanser, og vi vil lagre alle pakkene som er lastet ned i den.

Last ned installasjonspakker

Last ned Python 3.3

Den kan lastes ned fra den offisielle Python-siden www.python.org

Last ned Python-installasjonsprogrammet

Last ned Python-installasjonsprogrammet

Ved å klikke på lenken (Windows Installer) Python-installasjonsprogrammet lastes ned.

Last ned Glade

Last ned nettsted: glade.gnome.org

Både Python- og Glade-versjonene er 32-biters, men de kjører feilfritt på 64-biters systemer

Gladeside

Gladeside

Last ned PyGObject

Last ned nettsted: https://wiki.gnome.org/PyGObject

Vi må laste ned versjonen for GTK + 3

PyGObject

PyGObject

PyGObject i Google-kode

PyGObject i Google-kode

Installere pakkene

Vel opp til dette punktet har vi allerede alle nedlastede pakker i mappen programvare og når vi har lastet ned hver pakke, starter vi først med Python-installasjonen.

Nedlastede pakker

Nedlastede pakker

Python-installasjon

Installasjonen er veldig enkel, veiviseren vil lede oss gjennom prosessen; Vi lar alle alternativene være merket som standard.

Python installasjonsprogram

Python installasjonsprogram

Som vist på bildet, installerer Python i mappen C: \ Python33 \ Som standard lar vi det være og fortsetter med installasjonen.

Python installasjonsmappe

Python installasjonsmappe

På dette punktet av installasjonen velger vi alternativet Legg til python.exe i Path, med det formål at når vi starter en Python-tolk, kjøres den uten å måtte legge den til systemstien manuelt.

Legg til Python i systemstien

Legg til Python i systemstien

Deretter fullfører vi installasjonen, og Python vil ha blitt installert på systemet vårt.

Gladeinstallasjon

Gladeinstallasjon representerer ikke en stor komplikasjon, vi kjører installasjonsprogrammet og følger trinnene i veiviseren.

Installer glade

Installer glade

PyGObject installasjon

Vi hadde lastet ned pakken pygi-aio-3.4.2rev11.7zinneholder denne pakken PyGObject for Python 3.3 og GTK + 3-bibliotekene for Windows, som er komprimert med 7-zip, pakker vi ut den, og vi vil ha en mappe med følgende innhold:

Innholdet i mappen pygi-aio-3.4.2rev11.7

Innholdet i mappen pygi-aio-3.4.2rev11.7

Nå kopierer vi mappen gtk a C: \ Python33 \ Lib \ nettstedspakker det er der tredjepartspakker for Python er installert.

Kopier gtk-mappen

Kopier gtk-mappen

Gtk-mappe på C: \ Python33 \ Lib \ site-packages

Gtk-mappe på C: \ Python33 \ Lib \ site-packages

Vi går tilbake til mappen vår pygi-aio-3.4.2rev11 og vi åpner mappen py33 for Python-versjonen som er 3.3

Innholdet i py33-mappen

Innholdet i py33-mappen

Vi velger alt innhold fra mappen py33 og vi kopierer den tilbake til mappen C: \ Python33 \ Lib \ nettstedspakker, blir vi bedt om å blande og overskrive, svarer vi bekreftende. Innholdet i mappen nettstedspakker det ville være som vist i følgende bilde:

Kopier innholdet i py33-mappen til C: \ Python33 \ Lib \ site-packages

Kopier innholdet i py33-mappen til C: \ Python33 \ Lib \ site-packages

Kontrollerer riktig installasjon av PyGobject og GTK + 3

For å bekrefte at installasjonen vår har vært riktig, åpner vi Python IDLE og importerer GTK + 3-bibliotekene, og hvis vi ikke har noen feilmelding, vil alt ha blitt gjort riktig.

from gi.repository import Gtk

PyGobject og GTK + 3 er riktig installert

PyGobject og GTK + 3 er riktig installert


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   joaquin sa

    Og hvorfor GTK? Ville det ikke vært bedre å utvikle seg i QT? i tillegg til å være multiplatform, og mange sier at det er fremtiden

    1.    Arthur sa

      Vel, de to flotte grafiske bibliotekene på GNU / Linux-skrivebordet er GTK og QT, hver av dem velger den de foretrekker. Det er ingen grunn til å kjempe.

      Forskjellen mellom GTK og QT er at sistnevnte er et rammeverk, veldig bra, men det å være et rammeverk krever litt mer ressurser.

      For eksempel er Mozilla Firefox, Google Chrome, LibreOffice og en lang osv. Laget med GTK; Dette betyr ikke at det er bedre enn QT, hver og en skal velge den som passer deres preferanser og behov, vi vil ikke føre til en diskusjon om det.

      1.    pandev92 sa

        Google Chrome fra versjon 33, la gtk.

  2.   rolo sa

    og hvorfor forklaringen på Windows og ikke Linux

    1.    Germán sa

      Er det fordi alt allerede er pakket i Linux og i de offisielle arkivene til hver distro? I Fedora har jeg for eksempel allerede Python 3, Gtk + 3 og PyGobject installert som standard. Hvis jeg vil ha Glade, er det bare "yum install glade". Enkelt, ikke sant? 🙂

    2.    Arthur sa

      For som Germán sier, for GNU / Linux-distribusjoner er de allerede pakket, og det er veldig enkelt å installere dem; for eksempel å installere glade i Debian er veldig enkelt:
      aptitude installere glade

  3.   Marcelo sa

    Hvis jeg vil bruke Python 2.7, vil trinnene være de samme?
    Åpenbart installerer 2.7-biters Python 32 (selv om du bruker 64-biters OS) og i stedet for py33-mappen, vil 2.7 gå. Ville det fungere?
    Takk.

    1.    Arthur sa

      Vel ja, hvis du har et problem, gi meg en kommentar.

      Luck.

      1.    Marcelo sa

        Takk, jeg har prøvd det og for nå fungerer "Hello world" for meg.

        Jeg ser om jeg får noen god pyGTK3-opplæring eller hva den heter og eventuelle problemer, legg merke til.

          1.    Marcelo sa

            Caramba! Takk så mye!

          2.    Marcelo sa

            Tester GTK3 med Python 2.7 på Windows og følger opplæringen. Så langt fungerer alle programmene for meg, bortsett fra den i kapittel 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Det gir meg følgende feil:
            Sporing (siste samtale sist):
            Fil "C: \ Users \ User \ Desktop \ test.py", linje 24, i
            vinn = IconViewWindow ()
            Fil "C: \ Users \ User \ Desktop \ test.py", linje 19, i __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (ikon, 64, 0)
            Fil "C: \ Python27 \ lib \ site-packages \ gi \ types.py", linje 47, i funksjon
            returner info.invoke (* args, ** kwargs)
            GError: Ikonet 'gtk-cut' er ikke til stede i temaet

            Jeg prøvde det med andre ikoner, og det fungerer ikke heller. Må jeg installere et tema? Takk siden nå.

          3.    Marcelo sa

            Heller ikke Eksempel 19. Dra og slipp.

            Funksjonen som ringer i begge tilfeller, og det er der jeg får feil er:

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

            Jeg finner ikke ikonet, men i andre eksempler kan du bruke dem. Det gir meg bare en feil når jeg vil bruke den med den funksjonen (her kan ikonnavn erstattes med en verdi som Gtk.STOCK_CUT eller hva som helst, og det gir nøyaktig samme feil).

          4.    Marcelo sa

            Jeg fortsetter å snakke med meg selv. Det som fungerer for meg i andre eksempler er at bildene lastes på knappene. Jeg kan ikke laste ikonene med funksjonen som kommer i de to eksemplene jeg ga tidligere.

          5.    Arthur sa

            Jeg tror feilen er klar:
            GError: Ikonet 'gtk-cut' er ikke til stede i temaet

            Angivelig at ikonet ikke er tilgjengelig, bruk et annet ikon. Sannsynligvis inkluderte ikke pakkeholderen temaikonene, eller den kan ikke bli funnet i standardstien, bruk en GNU / Linux-distribusjon og se om den samme feilen fremdeles vises.

            Når det gjelder spørsmål 19, ser det ut til å være relatert til PyGobject-versjonen, øverst i dokumentasjonen står det:

            Merknader
            Versjoner av PyGObject = 3.0.3 er nødvendig for at følgende eksempler skal fungere.

            Versjonen du har er 3.0, prøv en GNU / Linux-distribusjon; og da må vi vente på at de oppdaterer pakken (for Windows), eller i alle fall kan du kompilere den selv.

            Hilsen og gå videre.

          6.    Marcelo sa

            I Ubuntu fungerer alle opplæringseksemplene perfekt for meg. På Windows fungerer det fortsatt ikke. Jeg må vente. En annen som ikke går er eksemplet på Spinner, som ikke gjør animasjonen. Hilsen og takk.

  4.   Joshua sa

    Jeg har fulgt installasjonsveiledningen og installert alt trinn for trinn.
    Og utføre følgende kode:
    fra gi.repository import Gtk

    klasse FiestraRektor:
    def __init __ (selv):
    filnavn = "/ data / dam / Python eksempler / Saudoform"
    konstruktør = Gtk.builder ()
    constructor.add_from_file (filnavn)
    # ordbok hvor vi forholder sinainaer med hendelser
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    #Vi får en referanse til XML-deskriptoren for å få tilgang
    self.label = self.widgets_widget ("Etikett")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

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

    hvis __navn__ == »__ main__»:
    FiestraPrincipal ()
    Gtk.Main ()

    Jeg får dette svaret:
    Sporing (siste samtale sist):
    Fil «C: / Brukere / admin / Google Drive / test / SaudoForm.py», linje 3, inn
    fra gi.repository import Gtk
    Fil "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", linje 27, i
    fra ._gi import _API, Repository
    ImportError: DLL-belastning mislyktes:% 1 er ikke et gyldig Win32-program.

    Noen vet hva problemet er, eller hva som kan være den mulige løsningen.
    Tusen takk.

  5.   Jesus sa

    Interessant. Jeg hadde gjort installasjonen i linux, men forklaringen på windows er greit, nå har jeg den i begge deler. 😉

  6.   Rafael Carmona sa

    Det er morsomt på en 7-biters Windows 32 første gang.
    På en Windows 7 64 bit kan jeg ikke få den til å kjøre, jeg får den alltid;
    >>> fra gi.repository import Gtk
    Sporing (siste samtale sist):
    Fil «», linje 1, i
    Fil "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", linje 27, i
    fra ._gi import _API
    ImportError: DLL-belastning mislyktes: Den angitte prosessen ble ikke funnet.

    Jeg har prøvd det uansett mulig, jeg har allerede mistet illusjonen om å installere den

    1.    Arthur sa

      Du vil se at 64-biters biblioteker fortsatt har noen feil, vennligst installer 32-biters versjonen av både python og GTK + slik at du ikke har problemer.

      Du skal aldri miste illusjonen 🙂

  7.   Richard sa

    Hei, jeg jobber med python + gtk3, det er veldig bra nå har jeg et lite problem. Jeg vil endre ikonet til skjemaet mitt (vindu) i dette tilfellet, og jeg kan endre det, takk på forhånd, hilsen

  8.   jors sa

    publiser enkle videoer om hvordan du programmerer i gtk + 3 og enkle opplæringshilsener

  9.   Jose sa

    Utmerket opplæring. Tusen takk for innsatsen. Hilsen.

  10.   jkmilo1030 sa

    Jeg gjorde alle trinnene, og da jeg stolte på installasjonen, fikk jeg denne feilen.

    Sporing (siste samtale sist):
    Fil «», linje 1, i
    fra gi.repository import Gtk
    ImportError: Ingen modul kalt 'gi'