Index
inleiding
In GNU / Linux is die ontwikkeling van toepassings met Python 3, Glade en GTK + 3 baie maklik, die pakkette is standaard in die meeste verspreidings.
Deur Glade ons kan vinnig en maklik gebruikerskoppelvlakke skep en dit dan in samewerking met Python gebruik. Om dit te bereik, gebruik u PyGObject te danke aan die introspeksiestelsel wat GNOME bied, wat die vinnige ontwikkeling van toepassings (RAD) vergemaklik; dit is ook moontlik om ons koppelvlakke wat met Glade gemaak is, uit ander programmeertale te gebruik.
Die probleem kom voor wanneer ons toepassings in Microsoft Windows wil gebruik, aangesien die pakkette vir hierdie stelsel tot onlangs nog nie amptelik bestaan het nie.
Met hierdie handleiding word bedoel dat die toepassings wat in GNU / Linux gemaak is met Python 3 en GTK + 3 sonder probleme in Windows werk.
vereistes
- Python 3.3
- Gtk + 3
- Glade 3.14 of hoër (GUI-ontwerper)
- pygoobject
Installasie op Windows
Dit sal begin deur 'n lêergids met die naam sagteware of 'n ander van u voorkeure, en ons sal al die pakkette wat afgelaai word daarin stoor.
Laai installasiepakkette af
Laai Python 3.3 af
Dit kan afgelaai word vanaf die amptelike Python-bladsy python.org
Deur op die skakel te klik (Windows Installer) sal die Python-installeerder aflaai.
Laai Glade af
Laai webwerf af: glade.gnome.org
Beide Python- en Glade-weergawes is 32-bis, maar hulle werk foutloos op 64-bis-stelsels
Laai PyGObject af
Laai webwerf af: https://wiki.gnome.org/PyGObject
Ons moet die weergawe vir GTK + 3 aflaai
Die installering van die pakkette
Tot dusver het ons al die afgelaaide pakkette in die gids sagteware en nadat ons elke pakket afgelaai het, begin ons eers met die Python-installasie.
Python-installasie
Installasie is baie eenvoudig, die towenaar sal ons deur die proses lei; Ons laat al die opsies by verstek.
Soos gesien in die prent, word Python in die gids geïnstalleer C: \ Python33 \ Standaard laat ons dit soos dit is en gaan ons voort met die installasie.
Op hierdie stadium van die installasie kies ons die opsie Voeg python.exe by Path, met die doel dat wanneer ons 'n Python-tolk begin, dit uitgevoer word sonder om dit handmatig by die stelselpad te voeg.
Dan is ons klaar met die installasie en dan is Python op ons stelsel geïnstalleer.
Glade Installasie
Glade-installasie is nie 'n groot komplikasie nie; ons voer die installasieprogram uit en volg die stappe van die towenaar.
PyGObject-installasie
Ons het die pakket afgelaai pygi-aio-3.4.2rev11.7zbevat hierdie pakket PyGObject for Python 3.3 en GTK + 3 biblioteke vir Windows, wat saamgepers is met 7-zip, ons pak dit uit en ons het 'n vouer met die volgende inhoud:
Nou kopieer ons die vouer gtk a C: \ Python33 \ Lib \ werfpakkette dit is waar die derde party pakkette vir Python geïnstalleer is.
Ons gaan terug na ons vouer pygi-aio-3.4.2rev11 en ons maak die vouer oop p33 vir die Python-weergawe wat 3.3 is
Ons kies alle inhoud uit die lêergids p33 en ons kopieer dit terug in die lêergids C: \ Python33 \ Lib \ werfpakkette, sal ons gevra word om te meng en oor te skryf, antwoord ons bevestigend. Die inhoud van die lêergids werfpakkette dit sou wees soos in die volgende prentjie getoon:
Kontroleer die korrekte installasie van PyGobject en GTK + 3
Om te verifieer dat ons installasie korrek is, open ons die Python IDLE en voer ons die GTK + 3-biblioteke in. As ons geen foutboodskap het nie, is alles korrek gedoen.
from gi.repository import Gtk
24 kommentaar, los joune
En hoekom GTK? Sou dit nie beter wees om in QT te ontwikkel nie? behalwe om multiplatform te wees, en baie sê dat dit die toekoms is
Wel, die twee uitstekende grafiese biblioteke op die GNU / Linux-lessenaar is GTK en QT, elkeen kies die keuse wat hy verkies. Daar is geen rede om te veg nie.
Die verskil tussen GTK en QT is dat laasgenoemde 'n raamwerk is, inderdaad baie goed, maar omdat dit 'n raamwerk is, verbruik dit 'n bietjie meer hulpbronne.
Byvoorbeeld Mozilla Firefox, Google Chrome, LibreOffice en 'n lang ens word gemaak met GTK; Dit beteken nie dat dit beter is as QT nie; almal moet die keuse kies wat by hul voorkeure en behoeftes pas, ons wil nie 'n bespreking daaroor veroorsaak nie.
Google Chrome vanaf weergawe 33, laat gtk.
en waarom die verduideliking vir Windows en nie Linux nie
Is dit omdat alles reeds in Linux verpak is en in die amptelike bewaarplekke van elke distro? In Fedora het ek byvoorbeeld reeds Python 3, Gtk + 3 en PyGobject geïnstalleer. As ek Glade wil hê, is dit net 'yum install glade'. Maklik, nie waar nie? 🙂
Want soos Germán sê, vir GNU / Linux-verspreidings is dit reeds verpak en is dit baie maklik om dit te installeer; om byvoorbeeld glade op Debian te installeer is baie eenvoudig:
aanleg installeer
As ek Python 2.7 wil gebruik, sal die stappe dieselfde wees?
Dit is duidelik dat die installering van die 2.7-bis Python 32 (selfs al gebruik u die 64-bit OS) en in plaas van die map py33, sou die 2.7 gaan. Sou dit werk?
Dankie.
Nou ja, as u 'n probleem het, laat my 'n opmerking.
Geluk.
Dankie, ek het dit probeer en vir nou werk die "Hello world" vir my.
Ek sien of ek enige goeie pyGTK3-handleiding kry, of wat dit ook al genoem word, en enige probleme, let op.
tutoriaal:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Caramba! Baie dankie!
Test GTK3 met Python 2.7 op Windows en volg die tutoriaal. Tot dusver werk alle programme vir my, behalwe die een in Hoofstuk 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)
Dit gee my die volgende fout:
Terugspoor (laaste oproep laas):
Lêer "C: \ Users \ User \ Desktop \ test.py", reël 24, in
wen = IconViewWindow ()
Lêer "C: \ Users \ User \ Desktop \ test.py", reël 19, in __init__
pixbuf = Gtk.IconTheme.get_default (). load_icon (ikoon, 64, 0)
Lêer "C: \ Python27 \ lib \ site-packages \ gi \ types.py", reël 47, in funksie
stuur info.invoke terug (* argumente, ** kwargs)
GError: Ikoon 'gtk-cut' is nie in die tema nie
Ek het dit met ander ikone probeer en dit werk ook nie. Moet ek 'n tema installeer? Dankie sedert nou.
Voorbeeld 19. Sleep en laat val ook nie.
Die funksie wat in albei gevalle bel en dit is waar ek 'n fout kry, is:
pixbuf = Gtk.IconTheme.get_default (). load_icon (icon_name, 16, 0)
Ek kan die ikoon nie vind nie, maar in ander voorbeelde kan u dit gebruik. Dit gee my net 'n fout as ek dit met daardie funksie wil gebruik (hier kan icon_name vervang word met 'n waarde soos Gtk.STOCK_CUT of wat ook al en dit gee presies dieselfde fout).
Ek hou aan met myself praat. Wat in ander voorbeelde vir my werk, is dat die beelde op die knoppies laai. Ek kan die ikone nie laai met die funksie in die twee voorbeelde wat ek vroeër gegee het nie.
Ek dink die fout is duidelik:
GError: Ikoon 'gtk-cut' is nie in die tema nie
Die ikoon is blykbaar nie beskikbaar nie. Gebruik 'n ander ikoon. Waarskynlik het die pakketonderhoud nie die tema-ikone ingesluit nie, of dit kan nie in die standaardpad gevind word nie. Gebruik 'n GNU / Linux-verspreiding en kyk of dieselfde fout steeds voorkom.
Wat vraag 19 betref, lyk dit of dit verband hou met die PyGobject-weergawe, bo-aan die dokumentasie staan daar:
nota
Weergawes van PyGObject = 3.0.3 is nodig om die volgende voorbeelde te laat werk.
Die weergawe wat u het, is 3.0; probeer 'n GNU / Linux-verspreiding; en dan moet ons wag tot hulle die pakket opdateer (vir Windows), of in elk geval kan u dit self saamstel.
Groete en gaan aan.
In Ubuntu werk al die tutoriaalvoorbeelde vir my perfek. Op Windows werk dit steeds nie. Ek sal moet wag. 'N Ander wat nie loop nie, is die voorbeeld van die Spinner, wat nie die animasie doen nie. Groete en dankie.
Ek het die installasiehandleiding gevolg en alles stap vir stap geïnstalleer.
En voer die volgende kode uit:
van gi.repositiewe invoer Gtk
klas Fiestra Skoolhoof:
def __init __ (self):
lêernaam = "/ data / dam / Python-voorbeelde / Saudoform"
konstruksie = Gtk.builder ()
constructor.add_from_file (lêernaam)
#woordeboek waar ons sinais met gebeure in verband bring
sinais = {
«ClickedAccept»: self.clic_boton,
"ActivateTextCadro": self.clic_boton,
"DestroyFiestra": Gtk.main_quit
}
constructor.connect_signals (sinais)
# Ons kry 'n verwysing na die XML-beskrywer om toegang te verkry
self.label = self.widgets_widget ("Etiket")
self.cadroTexto = self.widgets_widget ("CadroTexto")
def button_click (self, widget):
teks = self.cadroTexto.get_text ()
self.label.set_text ("golf% s"% teks)
as __naam__ == »__ hoof__»:
FiestraHoof ()
Gtk.Main ()
Ek kry die antwoord:
Terugspoor (laaste oproep laas):
Lêer «C: / Gebruikers / admin / Google Drive / toets / SaudoForm.py», reël 3, in
van gi.repositiewe invoer Gtk
Lêer "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", reël 27, in
vanaf ._gi invoer _API, bewaarplek
ImportError: DLL-laai het misluk:% 1 is nie 'n geldige Win32-toepassing nie.
Iemand weet wat die probleem is, of wat die moontlike oplossing daarvan kan wees.
Baie dankie.
Interessant. Ek het die installasie in Linux gedoen, maar die verduideliking vir Windows is goed, nou het ek dit in albei. 😉
Dit is die eerste keer snaaks op 'n 7-bis Windows 32.
Op 'n Windows 7 64 bit kan ek dit nie laat loop nie, ek kry dit altyd;
>>> van gi.repository invoer Gtk
Terugspoor (laaste oproep laas):
Lêer «», reël 1, in
Lêer "C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py", reël 27, in
vanaf ._gi invoer _API
ImportError: DLL-laai misluk: die gespesifiseerde proses is nie gevind nie.
Ek het dit in elk geval moontlik probeer, en ek het die illusie om dit te installeer reeds verloor.
U sal sien dat die 64-bis-biblioteke nog foute het. Installeer asseblief die 32-bis-weergawe van beide python en GTK + sodat u nie probleme het nie.
U moet nooit die illusie verloor nie 🙂
Hallo ek werk met python + gtk3, dit is nou baie goed. Ek het 'n klein probleem. Ek wil in hierdie geval die ikoon verander na my vorm (venster) en ek kan dit verander, dankie byvoorbaat, Groete
publiseer eenvoudige video's van hoe om te programmeer in gtk + 3 en eenvoudige tutoriale groete
Uitstekende tutoriaal. Baie dankie vir u moeite. Groete.
Ek het al die stappe gedoen en toe ek die installasie vertrou, het ek die fout gekry.
Terugspoor (laaste oproep laas):
Lêer «», reël 1, in
van gi.repositiewe invoer Gtk
ImportError: Geen module met die naam 'gi'