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
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
Preuzmite PyGObject
Preuzmi stranicu: https://wiki.gnome.org/PyGObject
Moramo preuzeti verziju za GTK + 3
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.
Instalacija Pythona
Instalacija je vrlo jednostavna, čarobnjak će nas voditi kroz proces; Sve opcije ostavljamo označene prema zadanim postavkama.
Kao što se vidi na slici, Python je instaliran u fascikli C: \ Python33 \ Po defaultu ga ostavljamo onakvim kakav je i nastavljamo s instalacijom.
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.
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.
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:
Sada kopiramo mapu gtk a C: \ Python33 \ Lib \ site-paketi tu se instaliraju nezavisni paketi za Python.
Vraćamo se u našu fasciklu pygi-aio-3.4.2rev11 i otvaramo fasciklu py33 za verziju Pythona koja je 3.3
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:
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
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
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.
Google chrome od verzije 33, ostavite gtk.
i zašto objašnjenje za Windows, a ne za Linux
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? 🙂
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
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.
Pa da, ako imate problem, ostavite mi komentar.
Sreća
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.
Tutorial:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Caramba! Hvala puno!
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.
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).
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.
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.
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.
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.
Zanimljivo. Instalaciju sam obavio u linuxu, ali objašnjenje za Windows je u redu, sada ga imam u oba. 😉
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.
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 🙂
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
objavite jednostavne video zapise o tome kako programirati u gtk + 3 i jednostavne pozdrave s vodičima
Odličan vodič. Hvala vam puno na vašem trudu. Pozdrav.
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'