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
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
Last ned PyGObject
Last ned nettsted: https://wiki.gnome.org/PyGObject
Vi må laste ned versjonen for GTK + 3
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.
Python-installasjon
Installasjonen er veldig enkel, veiviseren vil lede oss gjennom prosessen; Vi lar alle alternativene være merket som standard.
Som vist på bildet, installerer Python i mappen C: \ Python33 \ Som standard lar vi det være og fortsetter med installasjonen.
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.
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.
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:
Nå kopierer vi mappen gtk a C: \ Python33 \ Lib \ nettstedspakker det er der tredjepartspakker for Python er installert.
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
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:
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
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
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.
Google Chrome fra versjon 33, la gtk.
og hvorfor forklaringen på Windows og ikke Linux
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? 🙂
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
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.
Vel ja, hvis du har et problem, gi meg en kommentar.
Luck.
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.
Opplæringen:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Caramba! Takk så mye!
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å.
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).
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.
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.
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.
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.
Interessant. Jeg hadde gjort installasjonen i linux, men forklaringen på windows er greit, nå har jeg den i begge deler. 😉
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
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 🙂
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
publiser enkle videoer om hvordan du programmerer i gtk + 3 og enkle opplæringshilsener
Utmerket opplæring. Tusen takk for innsatsen. Hilsen.
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'