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
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
Download PyGObject
Download site: https://wiki.gnome.org/PyGObject
We moeten de versie downloaden voor GTK + 3
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.
Python-installatie
De installatie is heel eenvoudig, de wizard zal ons door het proces leiden; We laten alle opties standaard aangevinkt.
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.
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.
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.
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:
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.
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
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:
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
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
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.
Google Chrome vanaf versie 33, verlaat gtk.
en waarom de uitleg voor windows en niet voor linux
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? 🙂
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
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.
Nou ja, als je een probleem hebt, laat dan een reactie achter.
Luck.
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
Tutorial:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Caramba! Heel erg bedankt!
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.
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).
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.
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.
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.
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.
Interessant. Ik had de installatie in linux gedaan, maar de uitleg voor windows is prima, nu heb ik het in beide. 😉
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.
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 🙂
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
publiceer eenvoudige video's over hoe te programmeren in gtk + 3 en eenvoudige tutorials-begroetingen
Uitstekende tutorial. Heel erg bedankt voor je inzet. Vriendelijke groeten.
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'