Rodiklis
Įvadas
GNU / Linux kurti programas su „Python 3“, „Glade“ ir „GTK + 3“ yra labai paprasta, daugumoje distribucijų paketai yra numatyti.
Gracias Glade mes galime greitai ir lengvai sukurti vartotojo sąsajas ir tada jas naudoti kartu su Python. Norėdami tai pasiekti, naudojate „PyGObject“ dėka GNOME siūlomos introspekcijos sistemos, kuri žymiai palengvina greitą programų kūrimą (RAD); taip pat galima naudoti mūsų sąsajas, sukurtas su „Glade“ iš kitų programavimo kalbų.
Problema kyla, kai norime naudoti savo programas „Microsoft Windows“, nes iki šiol šios sistemos paketai oficialiai neegzistavo.
Šioje pamokoje ketinama, kad programos, sukurtos GNU / Linux naudojant „Python 3“ ir „GTK + 3“, „Windows“ veiktų be problemų.
Reikalavimai
- python 3.3
- Gtk + 3
- Glade 3.14 arba naujesnė (GUI dizaineris)
- „PyGobject“
Diegimas „Windows“
Tai prasidės sukūrus aplanką, vadinamą programinė įranga ar kitą jūsų pageidavimą ir mes jame išsaugosime visus atsisiųstus paketus.
Atsisiųskite diegimo paketus
Atsisiųskite „Python 3.3“
Jį galima atsisiųsti iš oficialaus „Python“ puslapio python.org
Spustelėdami nuorodą ("Windows Installer") „Python“ diegimo programa atsisiųs.
Atsisiųskite „Glade“
Atsisiųsti svetainę: glade.gnome.org
Tiek „Python“, tiek „Glade“ versijos yra 32 bitų, tačiau jos veikia nepriekaištingai 64 bitų sistemose
Atsisiųskite „PyGObject“
Atsisiųsti svetainę: https://wiki.gnome.org/PyGObject
Turime atsisiųsti „GTK + 3“ versiją
Paketų diegimas
Iki šiol mes jau turime visus atsisiųstus paketus aplanke programinė įranga ir atsisiųsdami kiekvieną paketą, pirmiausia pradėsime nuo „Python“ diegimo.
„Python“ diegimas
Diegimas yra labai paprastas, vedlys padės mums atlikti procesą; Paliekame visas parinktis pažymėtas pagal numatytuosius nustatymus.
Kaip matyti paveikslėlyje, „Python“ įdiegia aplanką C: \ Python33 \ pagal nutylėjimą paliekame jį tokį, koks yra, ir tęsiame diegimą.
Šiame diegimo taške mes pasirenkame parinktį Pridėkite python.exe prie kelio, su tikslu, kad paleidus „Python“ vertėją, jis bus vykdomas nereikalaujant jo rankiniu būdu pridėti prie sistemos kelio.
Tada mes baigsime diegimą ir „Python“ bus įdiegtas mūsų sistemoje.
Glado montavimas
Glade diegimas nėra didelė komplikacija, mes vykdome diegimo programą ir vykdome vedlio veiksmus.
„PyGObject“ diegimas
Mes atsisiuntėme paketą pygi-aio-3.4.2rev11.7z, šiame pakete yra „PyGObject for Python 3.3“ ir „GTK + 3“ bibliotekos, skirtos „Windows“, kuri yra suspausta 7 zip, išpakuosime jį ir turėsime aplanką su tokiu turiniu:
Dabar mes nukopijuojame aplanką gtk a C: \ Python33 \ Lib \ svetainių paketai kur yra įdiegti „Python“ trečiųjų šalių paketai.
Grįžtame į savo aplanką pygi-aio-3.4.2rev11 ir atidarome aplanką py33 „Python“ versijai, kuri yra 3.3
Mes pasirenkame viso turinio aplankas py33 ir mes ją nukopijuojame atgal į aplanką C: \ Python33 \ Lib \ svetainių paketai, mūsų bus paprašyta sumaišyti ir perrašyti, mes atsakome teigiamai. Aplanko turinys svetainių paketai tai būtų taip, kaip parodyta šiame paveikslėlyje:
Patikrinkite, ar tinkamai įdiegti „PyGobject“ ir „GTK + 3“
Norėdami patikrinti, ar mūsų diegimas buvo teisingas, atidarome „Python IDLE“ ir importuojame „GTK + 3“ bibliotekas. Jei neturime klaidos pranešimo, viskas bus padaryta teisingai.
from gi.repository import Gtk
24 komentarai, palikite savo
Ir kodėl GTK? Ar ne geriau būtų vystytis QT? be to, kad yra daugiaplatformis, ir daugelis sako, kad tai ateitis
Na, dvi puikios GNU / Linux darbalaukyje esančios grafinės bibliotekos yra GTK ir QT, kiekviena išsirenka sau patinkančią. Kovoti nėra jokios priežasties.
Skirtumas tarp GTK ir QT yra tas, kad pastarasis yra karkasas, labai geras, tačiau būdamas karkasu, jis sunaudoja šiek tiek daugiau išteklių.
Pvz., „Mozilla Firefox“, „Google Chrome“, „LibreOffice“ ir ilgos ir tt sukurtos naudojant GTK; Tai nereiškia, kad jis yra geresnis už QT, kiekvienas turėtų pasirinkti tą, kuris atitiktų jo pageidavimus ir poreikius, mes nenorime sukelti diskusijų apie tai.
„Google Chrome“ nuo 33 versijos, palikite gtk.
ir kodėl Windows, o ne Linux paaiškinimas
Ar todėl, kad Linux sistemoje viskas jau supakuota ir oficialiose kiekvieno platintojo saugyklose? Pavyzdžiui, „Fedora“ sistemoje jau turiu „Python 3“, „Gtk + 3“ ir „PyGobject“. Jei noriu „Glade“, tai tiesiog „yum install glade“. Lengva, tiesa? 🙂
Kadangi, kaip sako Germánas, GNU / Linux paskirstymams jie jau yra supakuoti ir juos įdiegti labai lengva; pavyzdžiui, įdiegti „glade“ „Debian“ yra labai paprasta:
tinkamumas įdiegti
Ar noriu naudoti „Python 2.7“, veiksmai bus tokie patys?
Akivaizdu, kad įdiegus 2.7 bitų „Python 32“ (net jei naudojatės 64 bitų OS) ir vietoj „py33“ aplanko, eis 2.7. Ar tai pavyktų?
Ačiū.
Na taip, jei turite problemų, palikite man komentarą.
Sėkmės.
Ačiū, aš jau bandžiau ir kol kas „Hello world“ man tinka.
Matau, ar galiu gauti kokią nors gerą pyGTK3 pamoką ar kaip ji vadinasi, ir kokių nors problemų, perspėjimo.
Vadovėlis:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Karamba! Labai ačiū!
„GTK3“ testavimas su „Python 2.7“ sistemoje „Windows“ ir vadovavimasis pamoka. Kol kas visos programos tinka man, išskyrus 14 skyriuje („IconView“ ->) https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)
Tai duoda šią klaidą:
„Traceback“ (paskutinis paskutinis skambutis):
Failas "C: \ Users \ User \ Desktop \ test.py", 24 eilutė, į
laimėti = IconViewWindow ()
Failas „C: \ Users \ User \ Desktop \ test.py“, 19 eilutė, __init__
pixbuf = Gtk.IconTheme.get_default (). load_icon (piktograma, 64, 0)
Failas „C: \ Python27 \ lib \ site-package \ gi \ types.py“, 47 eilutė, funkcijoje
grąžinti informaciją. iškvietimas (* args, ** kwargs)
„GError“: temoje nėra piktogramos „gtk-cut“
Išbandžiau su kitomis piktogramomis ir jis taip pat neveikia. Ar man reikia įdiegti temą? Ačiū nuo šiol.
Nei 19 pavyzdys. Vilkite ir upuść.
Funkcija, kuri iškviečiama abiem atvejais ir kur gaunu klaidą, yra:
pixbuf = Gtk.IconTheme.get_default (). load_icon (piktogramos_pavadinimas, 16, 0)
Nerandu piktogramos, bet kituose pavyzdžiuose galite jas naudoti. Tai suteikia man klaidą tik tada, kai noriu ją naudoti su ta funkcija (čia piktogramą_pavadinimas gali būti pakeista tokia reikšme kaip Gtk.STOCK_CUT ar bet kokia kita, ir ji suteikia tą pačią klaidą).
Aš nuolat kalbuosi su savimi. Kituose pavyzdžiuose man tinka tai, kad vaizdai įkeliami į mygtukus. Negaliu įkelti piktogramų su funkcija, pateikiama dviem anksčiau pateiktais pavyzdžiais.
Manau, kad klaida yra aiški:
„GError“: temoje nėra piktogramos „gtk-cut“
Akivaizdu, kad tos piktogramos nėra, naudokite kitą piktogramą. Tikriausiai paketo prižiūrėtojas neįtraukė temos piktogramų arba jos negalima rasti numatytame kelyje, naudokite GNU / Linux paskirstymą ir pažiūrėkite, ar vis dar rodoma ta pati klaida.
Kalbant apie 19 klausimą, atrodo, kad jis susijęs su „PyGobject“ versija, dokumentų viršuje sakoma:
pastabos
Norint, kad šie pavyzdžiai veiktų, reikalingos PyGObject = 3.0.3 versijos.
Turite 3.0 versiją, išbandykite GNU / Linux paskirstymą; ir tada mes turime palaukti, kol jie atnaujins paketą („Windows“), arba bet kuriuo atveju galite jį sukompiliuoti patys.
Sveikinimai ir pirmyn.
„Ubuntu“ visi mokymo pavyzdžiai man puikiai tinka. „Windows“ sistemoje jis vis dar neveikia. Turėsiu palaukti. Kitas, kuris nevaikšto, yra „Spinner“ pavyzdys, kuris nedaro animacijos. Sveikinimai ir padėkos.
Aš laikiausi diegimo pamokos ir viską įdiegiau žingsnis po žingsnio.
Ir vykdant šį kodą:
iš gi.repository import Gtk
„Fiestra“ klasė:
def __init __ (savęs):
filename = "/ data / dam / Python exemplars / Saudoform"
konstruktorius = Gtk.builder ()
constructor.add_from_file (failo pavadinimas)
# žodynas, kuriame sinaisus siejame su įvykiais
sinais = {
«ClickedAccept»: self.clic_boton,
„ActivateTextCadro“: self.clic_boton,
„DestroyFiestra“: „Gtk.main_quit“
}
constructor.connect_signals (sinais)
#Gavome nuorodą į XML deskriptorių, kad galėtume pasiekti
self.label = self.widgets_widget („Etiketė“)
self.cadroTexto = self.widgets_widget ("CadroTexto")
def button_click (savarankiškas, valdiklis):
text = self.cadroTexto.get_text ()
self.label.set_text („wave% s“% text)
jei __pavadinimas == »__ pagrindinis__»:
„Fiestra“ pagrindinis ()
Gtk.Pagrindinis ()
Gaunu šį atsakymą:
„Traceback“ (paskutinis paskutinis skambutis):
3 failo «C: / Users / admin / Google Drive / test / SaudoForm.py» failas
iš gi.repository import Gtk
Failas „C: \ Python33 \ lib \ site-package \ gi \ __ init__.py“, 27 eilutė, į
iš ._gi import _API, saugykla
ImportError: nepavyko įkelti DLL:% 1 yra netinkama „Win32“ programa.
Kažkas žino, kokia yra problema arba koks galimas jos sprendimas.
Labai ačiū.
Įdomus. Aš buvau atlikęs diegimą „Linux“ sistemoje, bet „Windows“ paaiškinimas yra puikus, dabar turiu jį abiejuose. 😉
Juokinga pirmą kartą 7 bitų „Windows 32“.
„Windows 7“ 64 bitų versijoje negaliu jos paleisti, ją visada gaunu;
>>> iš gi.repository import Gtk
„Traceback“ (paskutinis paskutinis skambutis):
Failo «» 1 eilutė
Failas „C: \ Python33 \ lib \ site-package \ gi \ __ init__.py“, 27 eilutė, į
iš ._gi importuoti _API
ImportError: nepavyko įkelti DLL: nurodytas procesas nerastas.
Išbandžiau bet kokiu atveju, jau praradau iliuziją ją įdiegti.
Pamatysite, kad 64 bitų bibliotekose vis dar yra klaidų. Įdiekite 32 bitų „Python“ ir „GTK +“ versiją, kad nekiltų problemų.
Niekada neturėtumėte prarasti iliuzijos 🙂
Sveiki, dirbu su python + gtk3, dabar labai gerai, kad kyla nedidelė problema. Šiuo atveju noriu pakeisti piktogramą į savo formą (langą) ir galiu ją pakeisti, ačiū iš anksto
paskelbkite paprastus vaizdo įrašus, kaip programuoti „gtk + 3“, ir paprastus pamokų sveikinimus
Puiki pamoka. Labai ačiū už jūsų pastangas. Pagarbiai.
Atlikau visus veiksmus ir, kai nuėjau pasitikėti diegimu, gavau šią klaidą.
„Traceback“ (paskutinis paskutinis skambutis):
Failo «» 1 eilutė
iš gi.repository import Gtk
ImportError: Nėra modulio pavadinimu „gi“