Razvoj aplikacij s Python 3, Glade in GTK + 3 v sistemu Windows

uvod

V GNU / Linux je razvoj aplikacij s Pythonom 3, Glade in GTK + 3 zelo enostaven, paketi so privzeto v večini distribucij.

Zahvaljujoč se Glada uporabniške vmesnike lahko ustvarimo hitro in enostavno, nato pa jih uporabimo skupaj s Pythonom. Da bi to dosegli, uporabljate PyGObject zahvaljujoč sistemu introspekcije, ki ga ponuja GNOME, kar olajša hiter razvoj aplikacij (RAD); prav tako je mogoče uporabiti naše vmesnike, ustvarjene z Glade iz drugih programskih jezikov.

Težava nastane, ko želimo svoje aplikacije uporabljati v sistemu Microsoft Windows, saj do nedavnega paketi za ta sistem uradno niso obstajali.

V tej vadnici je predvideno, da se aplikacije, izdelane v GNU / Linux z uporabo Python 3 in GTK + 3, brez težav izvajajo v sistemu Windows.

Zahteve

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 ali novejši (GUI oblikovalec)
  • pygobject

Namestitev v sistem Windows

Začelo se bo z ustvarjanjem mape z imenom programska oprema ali drugo po vaši želji in vanjo bomo shranili vse prenesene pakete.

Prenesite namestitvene pakete

Prenesite Python 3.3

Prenesete ga lahko z uradne strani Python python.org

Prenesite namestitveni program Python

Prenesite namestitveni program Python

S klikom na povezavo (Windows Installer) se bo naložil namestitveni program Python.

Prenesite Glade

Spletna stran za prenos: glade.gnome.org

Različici Python in Glade sta 32-bitni, vendar v 64-bitnih sistemih delujeta brezhibno

Glade Page

Glade Page

Prenesite PyGObject

Spletna stran za prenos: https://wiki.gnome.org/PyGObject

Prenesti moramo različico za GTK + 3

PyGObject

PyGObject

PyGObject v Googlovi kodi

PyGObject v Googlovi kodi

Namestitev paketov

Do te točke imamo v mapi že vse prenesene pakete programska oprema in ker smo prenesli vsak paket, bomo najprej začeli z namestitvijo Pythona.

Preneseni paketi

Preneseni paketi

Namestitev Pythona

Namestitev je zelo preprosta, čarovnik nas bo vodil skozi postopek; Vse možnosti pustimo privzeto označene.

Program za namestitev Pythona

Program za namestitev Pythona

Kot je razvidno iz slike, se Python namesti v mapo C: \ Python33 \ Privzeto ga pustimo, kot je, in nadaljujemo z namestitvijo.

Mapa za namestitev Pythona

Mapa za namestitev Pythona

Na tej točki namestitve izberemo možnost V pot dodajte python.exe, z namenom, da se ob zagonu tolmača Python izvrši, ne da bi ga bilo treba ročno dodati na sistemsko pot.

Dodajte Python v sistemsko pot

Dodajte Python v sistemsko pot

Nato končamo namestitev in Python bo nameščen v naš sistem.

Namestitev Glade

Namestitev Glade ne predstavlja večjega zapleta, zaženemo namestitveni program in sledimo korakom čarovnika.

Namestite jaso

Namestite jaso

Namestitev PyGObject

Paket smo prenesli pygi-aio-3.4.2rev11.7z, ta paket vključuje knjižnice PyGObject za Python 3.3 in GTK + 3 za Windows, ki je stisnjena z 7-zip, ga razpakiramo in dobili bomo mapo z naslednjo vsebino:

Vsebina mape pygi-aio-3.4.2rev11.7

Vsebina mape pygi-aio-3.4.2rev11.7

Zdaj kopiramo mapo gtk a C: \ Python33 \ Lib \ site-paketi tam so nameščeni tretji paketi za Python.

Kopiraj mapo gtk

Kopiraj mapo gtk

Mapa Gtk na C: \ Python33 \ Lib \ site-paketi

Mapa Gtk na C: \ Python33 \ Lib \ site-paketi

Vrnemo se v našo mapo pygi-aio-3.4.2rev11 in odpremo mapo py33 za različico Python, ki je 3.3

Vsebina mape py33

Vsebina mape py33

Mi izberemo vse vsebine iz mape py33 in jo kopiramo nazaj v mapo C: \ Python33 \ Lib \ site-paketi, morali bomo premešati in prepisati, odgovorimo pritrdilno. Vsebina mape spletna mesta bilo bi, kot je prikazano na naslednji sliki:

Kopirajte vsebino mape py33 v C: \ Python33 \ Lib \ site-paketi

Kopirajte vsebino mape py33 v C: \ Python33 \ Lib \ site-paketi

Preverjanje pravilne namestitve PyGobject in GTK + 3

Da bi preverili, ali je bila naša namestitev pravilna, odpremo Python IDLE in uvozimo knjižnice GTK + 3 in če ne bomo dobili nobenega sporočila o napaki, bo vse narejeno pravilno.

from gi.repository import Gtk

PyGobject in GTK + 3 sta pravilno nameščena

PyGobject in GTK + 3 sta pravilno nameščena


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Joaquin je dejal

    In zakaj GTK? Ali ne bi bilo bolje razvijati se v QT? poleg tega, da je multiplatformna, mnogi pravijo, da je prihodnost

    1.    artus je dejal

      No, dve odlični grafični knjižnici na namizju GNU / Linux sta GTK in QT, vsaka pa izbere tisto, ki jo ima raje. Ni razloga za boj.

      Razlika med GTK in QT je v tem, da je slednji okvir, res zelo dober, vendar kot okvir porabi malo več sredstev.

      Na primer, Mozilla Firefox, Google Chrome, LibreOffice in long etcetera so narejeni z GTK; To ne pomeni, da je boljši od QT, vsak naj izbere tistega, ki ustreza njegovim željam in potrebam, o tem ne želimo sprožiti razprave.

      1.    pandev92 je dejal

        Google chrome od različice 33, pustite gtk.

  2.   rolo je dejal

    in zakaj razlaga za windows in ne linux

    1.    Nemško je dejal

      Je to zato, ker je v Linuxu vse že zapakirano in v uradnih repozitorijih vsake distro? Na primer v Fedori imam privzeto že nameščene Python 3, Gtk + 3 in PyGobject. Če želim Glade, je to samo "yum install glade". Preprosto kajne? 🙂

    2.    artus je dejal

      Ker, kot pravi Germán, so za distribucije GNU / Linux že zapakirane in jih je zelo enostavno namestiti; na primer namestitev glade v Debian je zelo preprosta:
      aptitude namestite jaso

  3.   Marcelo je dejal

    Če želim uporabiti Python 2.7, bodo koraki enaki?
    Očitno bi namestitev 2.7-bitnega Pythona 32 (tudi če uporabljate 64-bitni OS) in namesto mape py33 šla 2.7. Bi uspelo?
    Hvala.

    1.    artus je dejal

      No ja, če imate težave, mi pustite komentar.

      Luck.

      1.    Marcelo je dejal

        Hvala, že sem poskusil in za zdaj mi deluje "Hello world".

        Vem, ali lahko dobim kakšno dobro vadnico pyGTK3 ali karkoli že se imenuje, in kakršne koli težave, opozorilo.

          1.    Marcelo je dejal

            Caramba! Najlepša hvala!

          2.    Marcelo je dejal

            Testiranje GTK3 s Pythonom 2.7 v sistemu Windows in sledenje vadnici. Zaenkrat zame delujejo vsi programi, razen tistega v 14. poglavju (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Prikaže mi naslednjo napako:
            Sledenje (zadnji zadnji klic):
            Datoteka "C: \ Users \ User \ Desktop \ test.py", vrstica 24, v
            win = IconViewWindow ()
            Datoteka "C: \ Users \ User \ Desktop \ test.py", vrstica 19, v __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (ikona, 64, 0)
            Datoteka "C: \ Python27 \ lib \ site-paketi \ gi \ types.py", vrstica 47, v funkciji
            return info.invoke (* args, ** kwargs)
            GError: Ikona 'gtk-cut' ni prisotna v temi

            Poskusil sem z drugimi ikonami in tudi ne deluje. Ali moram namestiti temo? Hvala od zdaj.

          3.    Marcelo je dejal

            Tudi primer 19. Povleci in spusti.

            Funkcija, ki v obeh primerih pokliče in takrat dobim napako, je:

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

            Ikone ne najdem, v drugih primerih pa jih lahko uporabite. Napaka mi pride samo, kadar jo želim uporabiti s to funkcijo (tukaj je ime_imenovanja mogoče nadomestiti z vrednostjo, kot je Gtk.STOCK_CUT ali karkoli, in daje popolnoma enako napako).

          4.    Marcelo je dejal

            Ves čas se pogovarjam sama s seboj. V drugih primerih mi uspe, da se slike naložijo na gumbe. Ikon ne morem naložiti s funkcijo, ki je navedena v dveh primerih, ki sem jih navedel prej.

          5.    artus je dejal

            Mislim, da je napaka jasna:
            GError: Ikona 'gtk-cut' ni prisotna v temi

            Očitno ta ikona ni na voljo, uporabite drugo ikono. Verjetno vzdrževalec paketov ni vključeval ikon tem ali ga ni mogoče najti na privzeti poti, uporabite distribucijo GNU / Linux in preverite, ali se ista napaka še vedno pojavlja.

            Glede vprašanja 19 se zdi, da je povezano z različico PyGobject, na vrhu dokumentacije piše:

            Opombe
            Za delovanje naslednjih primerov so potrebne različice PyGObject = 3.0.3.

            Različica, ki jo imate, je 3.0, poskusite z distribucijo GNU / Linux; nato pa moramo počakati, da posodobijo paket (za Windows), v vsakem primeru pa ga lahko sestavite sami.

            Lep pozdrav in gremo naprej.

          6.    Marcelo je dejal

            V Ubuntuju so vsi primeri vadnic zame popolni. V sistemu Windows še vedno ne deluje. Moral bom počakati. Še en, ki ne hodi, je primer Spinnerja, ki ne dela animacije. Lep pozdrav in hvala.

  4.   Jošua je dejal

    Sledil sem navodilom za namestitev in vse namestil korak za korakom.
    In izvajanje naslednje kode:
    iz gi.repository import Gtk

    razred FiestraPrincipal:
    def __init __ (samo):
    ime datoteke = "/ data / dam / Primeri Pythona / Saudoform"
    konstruktor = Gtk.builder ()
    constructor.add_from_file (ime datoteke)
    #dictionary, kjer sinais povezujemo z dogodki
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    # Za dostop imamo sklic na deskriptor XML
    self.label = self.widgets_widget ("Oznaka")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

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

    če je __name__ == »__ main__»:
    FiestraPrincipal ()
    Gtk.Main ()

    Dobil sem ta odgovor:
    Sledenje (zadnji zadnji klic):
    Datoteka «C: / Users / admin / Google Drive / test / SaudoForm.py», vrstica 3, v
    iz gi.repository import Gtk
    Datoteka "C: \ Python33 \ lib \ site-Packages \ gi \ __ init__.py", vrstica 27, v
    iz ._gi import _API, Repozitorij
    ImportError: Nalaganje DLL ni uspelo:% 1 ni veljavna aplikacija Win32.

    Nekdo ve, v čem je težava ali kakšna je možna rešitev.
    Hvala lepa.

  5.   Jezus je dejal

    Zanimivo. Namestitev sem opravil v Linuxu, vendar je razlaga za okna v redu, zdaj jo imam v obeh. 😉

  6.   Rafael Carmona je dejal

    V 7-bitnem sistemu Windows 32 je prvič smešno.
    V operacijskem sistemu Windows 7 64-bit ga ne morem zagnati, vedno ga dobim;
    >>> iz gi.repository import Gtk
    Sledenje (zadnji zadnji klic):
    Datoteka «», vrstica 1, v
    Datoteka "C: \ Python33 \ lib \ site-Packages \ gi \ __ init__.py", vrstica 27, v
    iz ._gi import _API
    ImportError: Nalaganje DLL ni uspelo: navedenega postopka ni bilo mogoče najti.

    Vseeno sem poskusil, že sem izgubil iluzijo namestitve.

    1.    artus je dejal

      Videli boste, da imajo 64-bitne knjižnice še vedno nekaj napak. Prosimo, namestite 32-bitno različico pythona in GTK +, da ne boste imeli težav.

      Nikoli ne smete izgubiti iluzije 🙂

  7.   Richard je dejal

    Živjo, delam s python + gtk3, zdaj je zelo dobro, ker imam majhen problem. V tem primeru želim spremeniti ikono v svoj obrazec (okno) in jo lahko spremenim, hvala vnaprej, Lep pozdrav

  8.   jors je dejal

    objavite preproste videoposnetke, kako programirati v gtk + 3, in enostavne pozdrave z vadnicami

  9.   jose je dejal

    Odlična vadnica. Najlepša hvala za vaš trud. S spoštovanjem.

  10.   jkmilo1030 je dejal

    Naredil sem vse korake in ko sem zaupal namestitvi, sem dobil to napako.

    Sledenje (zadnji zadnji klic):
    Datoteka «», vrstica 1, v
    iz gi.repository import Gtk
    ImportError: Nobenega modula z imenom 'gi'