Razvoj aplikacija sa Python 3, Glade i GTK + 3 na Windowsima

Uvod

U GNU / Linuxu razvoj aplikacija s Pythonom 3, Gladeom i GTK + 3 vrlo je jednostavan, paketi dolaze po defaultu u većini distribucija.

Hvala Proplanak možemo brzo i jednostavno stvoriti korisničko sučelje, a zatim ih koristiti zajedno s Pythonom. Da biste to postigli, koristite PyGObject zahvaljujući sistemu introspekcije koji nudi GNOME, a koji znatno olakšava brzi razvoj aplikacija (RAD); moguće je koristiti i naša sučelja kreirana sa Glade iz drugih programskih jezika.

Problem nastaje kada svoje aplikacije želimo koristiti u sustavu Microsoft Windows, jer donedavno paketi za ovaj sistem nisu službeno postojali.

Ovim vodičem namijenjeno je da se aplikacije izrađene u GNU / Linuxu koristeći Python 3 i GTK + 3 bez problema pokreću u sustavu Windows.

Zahtevi

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 ili noviji (GUI dizajner)
  • pygobject

Instalacija na Windows

Započet će stvaranjem mape zvane softver ili neku drugu po vašoj želji i u nju ćemo spremiti sve preuzete pakete.

Preuzmite instalacijske pakete

Preuzmite Python 3.3

Može se preuzeti sa službene stranice Python python.org

Preuzmite instalacijski program Python

Preuzmite instalacijski program Python

Klikom na vezu (Windows Installer) instalacijski program Python će se preuzeti.

Preuzmite Glade

Preuzmi stranicu: glade.gnome.org

I verzije Python i Glade su 32-bitne, ali rade bez problema na 64-bitnim sistemima

Glade Page

Glade Page

Preuzmite PyGObject

Preuzmi stranicu: https://wiki.gnome.org/PyGObject

Moramo preuzeti verziju za GTK + 3

PyGObject

PyGObject

PyGObject u Google kodu

PyGObject u Google kodu

Instaliranje paketa

Do ovog trenutka već imamo sve preuzete pakete u mapi softver i kako smo preuzeli svaki paket, prvo ćemo započeti s instalacijom Pythona.

Preuzeti paketi

Preuzeti paketi

Instalacija Pythona

Instalacija je vrlo jednostavna, čarobnjak će nas voditi kroz proces; Sve opcije ostavljamo označene prema zadanim postavkama.

Instalacijski program Pythona

Instalacijski program Pythona

Kao što se vidi na slici, Python je instaliran u fascikli C: \ Python33 \ Po defaultu ga ostavljamo onakvim kakav je i nastavljamo s instalacijom.

Instalacijska mapa Pythona

Instalacijska mapa Pythona

U ovom trenutku instalacije odabiremo opciju Dodajte python.exe u Path, sa svrhom da se prilikom pokretanja Python interpretera izvrši bez potrebe za ručnim dodavanjem na sistemsku putanju.

Dodajte Python u sistemsku putanju

Dodajte Python u sistemsku putanju

Tada završavamo instalaciju i Python će biti instaliran na naš sistem.

Instalacija Glade

Instalacija Gladea ne predstavlja veliku komplikaciju, mi pokrećemo instalacijski program i slijedimo korake čarobnjaka.

Instalirajte proplanak

Instalirajte proplanak

Instalacija PyGObject-a

Preuzeli smo paket pygi-aio-3.4.2rev11.7z, ovaj paket uključuje PyGObject za Python 3.3 i GTK + 3 biblioteke za Windows, koji je komprimiran sa 7-zip, raspakujemo ga i imat ćemo mapu sa sljedećim sadržajem:

Sadržaj mape pygi-aio-3.4.2rev11.7

Sadržaj mape pygi-aio-3.4.2rev11.7

Sada kopiramo mapu gtk a C: \ Python33 \ Lib \ site-paketi tu se instaliraju nezavisni paketi za Python.

Kopirajte mapu gtk

Kopirajte mapu gtk

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

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

Vraćamo se u našu fasciklu pygi-aio-3.4.2rev11 i otvaramo fasciklu py33 za verziju Pythona koja je 3.3

Sadržaj mape py33

Sadržaj mape py33

Mi biramo sav sadržaj iz mape py33 i kopiramo ga nazad u mapu C: \ Python33 \ Lib \ site-paketi, od nas će se tražiti da promiješamo i prepišemo, odgovaramo potvrdno. Sadržaj mape web-paketi bilo bi kao što je prikazano na slijedećoj slici:

Kopirajte sadržaj mape py33 u C: \ Python33 \ Lib \ site-pakete

Kopirajte sadržaj mape py33 u C: \ Python33 \ Lib \ site-pakete

Provjera ispravne instalacije PyGobject-a i GTK + 3

Da bismo provjerili je li naša instalacija ispravna, otvaramo Python IDLE i uvozimo biblioteke GTK + 3, a ako nemamo nijednu poruku o grešci, sve će biti učinjeno ispravno.

from gi.repository import Gtk

PyGobject i GTK + 3 su ispravno instalirani

PyGobject i GTK + 3 su ispravno instalirani


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   joaquin rekao je

    A zašto GTK? Zar ne bi bilo bolje razvijati se u QT? osim što je multiplatformna i mnogi kažu da je to budućnost

    1.    artus rekao je

      Pa, dvije sjajne grafičke biblioteke na radnoj površini GNU / Linux su GTK i QT, svaka bira onu koja više voli. Nema razloga za borbu.

      Razlika između GTK i QT je u tome što je potonji okvir, zaista vrlo dobar, ali kao okvir troši malo više resursa.

      Na primjer, Mozilla Firefox, Google Chrome, LibreOffice i long etcetera izrađeni su s GTK-om; To ne znači da je bolji od QT-a, svatko bi trebao odabrati onaj koji odgovara njegovim preferencijama i potrebama, ne želimo o tome raspravljati.

      1.    Pandev92 rekao je

        Google chrome od verzije 33, ostavite gtk.

  2.   rolo rekao je

    i zašto objašnjenje za Windows, a ne za Linux

    1.    Njemački rekao je

      Je li to zato što je u Linuxu sve već spakirano i u službenim spremištima svake distro? Na primjer, u Fedori već imam instalirane Python 3, Gtk + 3 i PyGobject po defaultu. Ako želim Glade, to je samo "yum install glade". Lako zar ne? 🙂

    2.    artus rekao je

      Jer kao što Germán kaže, za GNU / Linux distribucije su već zapakirane i vrlo je jednostavno instalirati ih; na primjer, instalirati glade u Debian vrlo je jednostavno:
      aptitude instalirati proplanak

  3.   marcelo rekao je

    Ako želim koristiti Python 2.7, hoće li koraci biti isti?
    Očito je da bi instaliranje 2.7-bitnog Pythona 32 (čak i ako koristite 64-bitni OS) i umjesto mape py33 išlo 2.7. Da li bi to uspjelo?
    Hvala.

    1.    artus rekao je

      Pa da, ako imate problem, ostavite mi komentar.

      Sreća

      1.    marcelo rekao je

        Hvala, već sam probao i za sada mi "Hello world" djeluje.

        Vidim mogu li dobiti bilo koji dobar vodič za pyGTK3 ili kako god se to zove i bilo kakve probleme, upozorenje.

          1.    marcelo rekao je

            Caramba! Hvala puno!

          2.    marcelo rekao je

            Testiranje GTK3 s Pythonom 2.7 na Windowsu i praćenje vodiča. Za sada svi programi rade za mene, osim onog u poglavlju 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Daje mi sljedeću grešku:
            Traceback (najnoviji zadnji poziv):
            Datoteka "C: \ Users \ User \ Desktop \ test.py", red 24, u
            win = IconViewWindow ()
            Datoteka "C: \ Users \ User \ Desktop \ test.py", red 19, u __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (ikona, 64, 0)
            Datoteka "C: \ Python27 \ lib \ site-package \ gi \ types.py", red 47, u funkciji
            return info.invoke (* args, ** kwargs)
            GError: Ikona 'gtk-cut' nije prisutna u temi

            Pokušao sam s drugim ikonama, a ni to ne radi. Moram li instalirati temu? Hvala od sada.

          3.    marcelo rekao je

            Kao ni Primjer 19. Povuci i ispusti.

            Funkcija koja poziva u oba slučaja i tu dobivam grešku je:

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

            Ne mogu pronaći ikonu, ali u drugim primjerima ih možete koristiti. Donosi mi grešku samo kada je želim koristiti s tom funkcijom (ovdje se icon_name može zamijeniti vrijednošću kao što je Gtk.STOCK_CUT ili bilo što drugo i daje potpuno istu grešku).

          4.    marcelo rekao je

            Stalno razgovaram sa sobom. U ostalim primjerima meni odgovara što se slike učitavaju na tipkama. Ne mogu učitati ikone s funkcijom koja dolazi u dva primjera koja sam ranije dao.

          5.    artus rekao je

            Mislim da je greška jasna:
            GError: Ikona 'gtk-cut' nije prisutna u temi

            Izgleda da ta ikona nije dostupna, koristite drugu ikonu. Održavač paketa vjerovatno nije sadržavao ikone tema ili ga nije moguće pronaći u zadanoj putanji, upotrijebite GNU / Linux distribuciju i provjerite pojavljuje li se ista greška i dalje.

            Što se tiče pitanja 19, čini se da je povezano s verzijom PyGobject, na vrhu dokumentacije stoji:

            Bilješka
            Verzije PyGObject = 3.0.3 potrebne su za rad sljedećih primjera.

            Verzija koju imate je 3.0, isprobajte GNU / Linux distribuciju; a onda moramo pričekati da ažuriraju paket (za Windows) ili ga u svakom slučaju možete sami sastaviti.

            Pozdrav i kreni dalje.

          6.    marcelo rekao je

            U Ubuntuu svi primjeri tutorijala rade savršeno za mene. Na Windowsima i dalje ne radi. Morat ću pričekati. Još jedan koji ne hoda je primjer Spinnera, koji ne radi animaciju. Pozdrav i hvala.

  4.   Joshua rekao je

    Slijedio sam vodič za instalaciju i instalirao sve korak po korak.
    I izvršavanje sljedećeg koda:
    iz gi.repository import Gtk

    klasa FiestraPrincipal:
    def __init __ (samo):
    ime datoteke = "/ data / dam / Python samples / Saudoform"
    konstruktor = Gtk.builder ()
    constructor.add_from_file (ime datoteke)
    #dictionary gdje vezujemo sinais s događajima
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    # Dobivamo referencu na XML deskriptor da bismo mogli pristupiti
    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"% teksta)

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

    Dobio sam ovaj odgovor:
    Traceback (najnoviji zadnji poziv):
    Datoteka «C: / Users / admin / Google Drive / test / Saudo Form.py», red 3, u
    iz gi.repository import Gtk
    Datoteka "C: \ Python33 \ lib \ site-Packages \ gi \ __ init__.py", red 27, u
    iz ._gi import _API, Repozitorij
    ImportError: Nije uspjelo učitavanje DLL-a:% 1 nije važeća Win32 aplikacija.

    Neko zna u čemu je problem ili koje je moguće rješenje.
    Hvala lijepo.

  5.   Isus rekao je

    Zanimljivo. Instalaciju sam obavio u linuxu, ali objašnjenje za Windows je u redu, sada ga imam u oba. 😉

  6.   Rafael Carmona rekao je

    Smiješno je na 7-bitnom sustavu Windows 32 prvi put.
    Na operativnom sistemu Windows 7 64 bit, ne mogu ga pokrenuti, uvijek ga dobijem;
    >>> iz gi.repository import Gtk
    Traceback (najnoviji zadnji poziv):
    Datoteka «», red 1, u
    Datoteka "C: \ Python33 \ lib \ site-Packages \ gi \ __ init__.py", red 27, u
    iz ._gi import _API
    ImportError: Učitavanje DLL-a nije uspjelo: navedeni postupak nije pronađen.

    Isprobao sam to u svakom slučaju moguće, već sam izgubio iluziju da sam ga instalirao.

    1.    artus rekao je

      Vidjet ćete da 64-bitne knjižnice i dalje imaju neke greške, instalirajte 32-bitnu verziju i pythona i GTK + kako ne biste imali problema.

      Nikada ne biste trebali izgubiti iluziju 🙂

  7.   Richard rekao je

    Bok, radim s python + gtk3, sada je vrlo dobro, imam mali problem. U ovom slučaju želim promijeniti ikonu u svoj oblik (prozor) i mogu je promijeniti, hvala unaprijed

  8.   jors rekao je

    objavite jednostavne video zapise o tome kako programirati u gtk + 3 i jednostavne pozdrave s vodičima

  9.   Jose rekao je

    Odličan vodič. Hvala vam puno na vašem trudu. Pozdrav.

  10.   jkmilo1030 rekao je

    Učinio sam sve korake i kad sam otišao vjerovati instalaciji, dobio sam ovu grešku.

    Traceback (najnoviji zadnji poziv):
    Datoteka «», red 1, u
    iz gi.repository import Gtk
    ImportError: Nema modula pod nazivom 'gi'