Naredili bomo majhen program s PyGTK 3.0, ki deluje tudi za PyGTK 3.4. Ta mali GUI vas bo naučil, kako razdeliti program na dve ali več datotek.
Obiščete lahko vadbo Sebastiana Pölsterla o novem PyGTK 3, tukaj je nova vadnica, pustim povezavo:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
To je Sebastianov blog.
Eno kritiziranje te vaje s strani Sebastiana je, da program ne uči, kako razdeliti program na dele ali na več datotek, dobro bi bilo, če bi pokazal primer, kako to storiti s PyGTK 3.
Vsi veliki in zapleteni programi so razdeljeni na veliko datotek in datoteke so celo postavljene v druge imenike, to pomeni, da se nahajajo v različnih mapah.
Začnimo z majhnim primerom:
Tu je koda za pisanje v eno datoteko, imenovano gui.py. Odpremo urejevalnik besedil Gedit ali urejevalnik, ki ga najpogosteje uporabljamo, spodaj kopiramo kodo in jo shranimo kot gui.py
from gi.repository import Gtk class gui (): def on_open_clicked (self, button): print "\" Odprt \ "kliknjen gumb" def on_close_clicked (self, button): print "Zapiranje aplikacije" Gtk.main_quit () def __init__ (self): self.window = Gtk.Window () self.window.connect ('delete-event', Gtk.main_quit) self.box = Gtk.Box () self.window.add (self.box) self. button = Gtk.Button (label = 'Open') self.button.connect ("kliknil", self.on_open_clicked) self.box.pack_start (self.button, True, True, 0) self.button = Gtk.Button ( label = 'Zapri') self.button.connect ("kliknil", self.on_close_clicked) self.box.pack_start (self.button, True, True, 0) self.window.show_all () Gtk.main () if __name__ == '__main__': gui = gui ()
def on_open_clicked (self, button): natisni "kliknjen gumb" Odpri \ "
To je funkcija, ki se aktivira v terminalu, ko kliknemo gumb za odpiranje. Signal za njegovo aktiviranje je:
self.button.connect ("kliknil", self.on_open_clicked) def on_close_clicked (self, button): natisni "Zapiranje aplikacije" Gtk.main_quit ()
To je funkcija, ki se aktivira, ko kliknemo gumb za zapiranje.
zaprite program, ki ga izvajamo.
signal za njegovo aktiviranje je
self.button.connect ("kliknil", self.on_close_clicked) iz gi.repository import Gtk ### prikličemo knjižnice PyGTK ### class gui (): ### definicija razreda, imenovana gui, je glavni razred # ##
Izjava o pripomočkih: pripomočki so program, ki ga vnaprej določijo knjižnice GUI, ki jih uporabljamo. Na primer, pripomočki so gumb, okno, polje itd. To so pripomočki, ki jih prijavimo v našem programu.
self.window = Gtk.Window () ### window ### self.box = Gtk.Box () ### box #### self.button = Gtk.Button (label = 'Open') ### # gumb za odpiranje #### self.button = Gtk.Button (label = 'Zapri') #### gumb za zapiranje #### self.window.add (self.box) #### polje je v okno z imenom window #### self.box.pack_start (self.button, True, True, 0) ##### gumb je v polju z imenom box ### self.window.show_all () ## # pokažemo celotno okno ### gui = gui () ### ustvari objekt gui ####
Naš program položimo v mapo, ki se v našem primeru imenuje preprost na namizju
Odpremo mapo s terminalom, v mojem primeru uporabljam Nemo iz Linux Mint 14.
Za prevajanje vstavimo v terminal python gui.py
glej sliko.
Zdaj lahko vidimo naš majhen program ali nov pripomoček, ustvarjen s knjižnicami PyGTK 3
To je preprosto okno z dvema gumboma.
Zdaj program razdelimo na tri dele, nato pustim kodo za tri datoteke.
Prva datoteka gui.py
iz gi.repository import Gtk from kill import uniči iz io import io class gui (uniči, io): def __init __ (self): self.window = Gtk.Window () self.window.connect ('delete-event', Gtk .main_quit) self.box = Gtk.Box () self.window.add (self.box) self.button = Gtk.Button (label = 'Open') self.button.connect ("kliknil", self.on_open_clicked) self.box.pack_start (self.button, True, True, 0) self.button = Gtk.Button (label = 'Zapri') self.button.connect ("kliknil", self.on_close_clicked) self.box.pack_start ( self.button, True, True, 0) self.window.show_all () Gtk.main (), če __name__ == '__main__': gui = gui ()
Druga datoteka io.py
class io: def on_open_clicked (self, button): print "\" kliknjen gumb "Odpri \"
Tretja datoteka uniči.py
iz gi.repository import Gtk class uniči: def on_close_clicked (self, button): natisni "Zapiranje aplikacije" Gtk.main_quit ()
Tri datoteke v našem primeru postavimo v isto mapo, mapa se imenuje preprosto razdeljena.
Za sestavljanje treh datotek. Odpremo mapo s terminalom in jo preprosto vstavimo nazaj v terminal
python gui.py
Spremembe kode gui.py
od uniči uvozni uniči ### stavek za uvoz naše datoteke kill.py ### od io import io ### stavek za uvoz naše datoteke io.py ### razred gui (uniči, io): #### v razred main dodamo podrazrede uniči in io ####
Vidite, da stavek
def on_open_clicked (self, button): natisni "kliknjen gumb" Odpri \ "
Ni v gui.py, je v datoteki io.py
Stavek
def on_close_clicked (self, gumb):
natisni "Zapiranje aplikacije"
Gtk.main_quit ()
nahaja se v datoteki kill.py
Tako lahko program razdelimo na več datotek, ki se nahajajo v različnih imenikih hkrati.
Po drugi strani pa je Python steber brezplačne programske opreme in je prilagojen za delo s GTK 3.6 /3.8, njegovo ime je PyGTK. Pythonova prilagoditev za KDE se imenuje PyQT.
Python je prilagojen za Mac OS in WINDOWS.
Upam, da vam je bila ta mini vadnica PyGTK3 v pomoč. Lahko dajo vse konstruktivne kritike, ki jih želijo.
Poznam tudi nekaj Gtk 3.4 /3.6 in Vala GTK 3.4 / 3.6.
http://www.youtube.com/watch?v=9ckRn_sx8CE
Nazadnje se uporabniki KDE opravičujejo, ker niso naredili mini vadnice za KDE.
V kdeju raje uporabljam kdevelop (mislim, da se temu tako reče), da ustvarim grafični uporabniški vmesnik, vendar še vedno težko najdem procese, da bi se to zgodilo x stvar:
Super za tiste, ki uporabljamo Python: D!
Lep pozdrav!
Pozdravljeni, to skupnost spremljam že dolgo in nisem prepričan, ali prvič komentiram ali pa sem to že počel 😀 (pisanje komentarjev v spletu res nisem navdušen). Stvar je v tem, da to storim, da Elavu in KZKG ^ Gaari pustim predlog kot skrbnika, in mislim, da bi bilo dobro dodati vtičnik za barvanje sintakse zdaj, ko v zadnjem času vidim več objav s kodo v različnih programskih jezikih. Vem, da je vtičnikov kar nekaj, vendar nisem poskusil nobenega, ker nisem uporabnik wordpressa, zato vas prepuščam, da razmislite o izvedljivosti zahteve. Ob tej priložnosti preostale bralce vprašam, kaj si mislijo o tej ideji, ker vem, da obstajajo ljudje, ki kodo raje berejo brez okraskov. Opravičujem se, če je bilo to tukaj že komentirano in je bilo iz neznanega razloga zavrnjeno, saj se ne spomnim, da bi na to temo razpravljali.
Resnica je, da bi rad imel možnost obarvanja sintakse, da bi poudaril kodo programskih jezikov.
To bi pomagalo uporabnikom, ki se želijo naučiti programskih jezikov.
Ampak hej, tudi jaz se počutim s forumom in da lahko skupaj razpravljamo in se učimo.
GNU Emacs je bolj udoben, saj morate vsaj izbrati, v katerem preveritelju programskega jezika želite delati (če ne želite večje teže procesorja, uporabite GNU Nano in uživajte v minimalizmu v najboljšem primeru).
Elio estamos hablando de Worpress . Implementado en el blog Desde Linux. No tiene las funciones para dar color a las letras de los posteos .
Oh oprosti.
Naaa emacs je udoben za tiste, ki imajo 84 prstov XD .., običajne ljudi, tekstopisca, sublimno besedilo ali beležnico ++ xd
Neverjetno je, da se niste naučili tipkanja, ki je potrebno za dobro obvladovanje GNU Emacs in bližnjic na tipkovnici. Poleg tega grafični uporabniški vmesnik olajša uporabo njegovih menijev (lahko ga uporabljate v sistemu Windows, vendar ni priporočljivo, da to počnete v običajnem načinu, temveč v načinu ukaznega poziva, da win32 ne bo bojkotiral vašega skripta).
Zelo kul vadnica. Toda mimogrede, izvorna koda pythona ni prevedena, je interpretiran jezik.
Lahko se prevede v psevdo kodo. Tolmaču ne predstavljajo strojnega jezika, temveč bajti, toda postopek se imenuje tudi prevedeni. V tem smislu lahko rečemo, da je nekaj sestavljeno.
Morda se je bolje naučiti pytgk2, ker je najnovejša različica, ki je na voljo za Windows, 2.24. Serija 3 je opazna zaradi svoje odsotnosti. In slabi jeziki pravijo, da gnome v vsaki novi različici razbije vse apise.
Programiram model z GTK 3.4 / 3.6 in resnica je, da vam zlomijo potrpljenje in glavo, kodo morate prepisati, zdaj razumem, zakaj se ljudje Linux Mint pritožujejo nad GTK in projektom GNOME.
Za tiste iz MINT se strinjam z GTK 2.4, to se ni zgodilo.
Dobra vadnica in reference.
Samo podrobnost, odkar je vstavljena koda, so v Pythonu vdolbine obvezne in jih je treba upoštevati v primeru kode.
Lep pozdrav!
Ali lahko razložite, iz česa so obvezne identifikacije v Pythonu? Resnično vam povem, tega nisem še nikoli slišal.V forumih PyGTK 2/3 v angleščini sem slabo vajen in ga morda spregledam.
V Pythonu ne uporabljate tipk, kot v C, ali blokov za začetek / konec, kot v Pascalu, vendar je vse razumljeno z vdolbinami, ki jo daste v kodo. To pomeni, da so bloki prepoznani z vdolbino. To je lastnost, ki mi je še posebej všeč. Izogibate se pisanju tipk in podobnim stvarem.
To mi preprosto ni všeč, zdi se preprostejše, če vstavimo dve majhni tipki ali std :: endl;
: p Vaš učitelj programiranja vam bo postavil 0. Ali še huje, odpustili vas bodo z dela. Najpomembneje je, da je koda berljiva z vsem, kar pomeni
konča se z zapiralnimi oklepaji, zaradi česar sem veliko bolj berljiv XD ..
Resno ???
int main(int argc, char *argv[]){program_name = argv[0];while ((argc > 1) && (argv[1][0] == '-')) {switch (argv[1][1]) {case 'v':verbose = 1; break;case 'o':out_file = &argv[1][2];break;case 'l':line_max = atoi(&argv[1][2]);break;default:fprintf(stderr,"Bad option %s\n", argv[1]);usage();}++argv;--argc;} if (argc == 1) {do_file("print.in");} else {while (argc > 1) {do_file(argv[1]);++argv;--argc;}}return (0);}
Vidiš? Brez vdolbin ni dobro razumljen. In to enostavno. Pri bolj zapletenem ga razume le prevajalnik. Stvar je v tem, da ker bi morali kljub vsemu zamikati (da bi ljudje razumeli kodo), zakaj bi bila odveč in uporabljali ločila? Dovolj z vdolbinico in to je to.
Seveda se nič ne razume, ker ne spoštujete pravil dobrega pisanja za program v c / c ++. To, kar ste storili, velja za kar koli, na primer za gnezdenje funkcije znotraj funkcije znotraj druge funkcije, ki je znotraj druge, potem vas želim videti xd, če boste to lahko razumeli.
mimogrede, z dvema izgledoma je ta koda lahko razumljiva xD
To, kar sem naredil, sem namerno pokazal, da je brez vdolbine, čeprav je sestavljena, izjemno težko razumeti katero koli kodo. Torej imate 2 pravili: zamik in obseg z ločili. Ampak to je odveč. V Pythonu tolmač takšne kode preprosto ne sprejme. In imate samo eno pravilo: zamik. Enostavno
Ampak hej, vsak s svojim okusom.
Oba sta dobra, zamaknjena in brez zob, po mojem mnenju imam raje podpičje ali rubin, podobno kot python, vendar zamik ni potreben.
Tako je bolje razumljeno: P:
echo 'int main (int argc, char * argv []) {ime_programa = argv [0]; while ((argc> 1) && (argv [1] [0] ==' - ')) {stikalo (argv [ 1] [1]) {primer 'v': podrobno = 1; break; case 'o': out_file = & argv [1] [2]; break; case 'l': line_max = atoi (& argv [1] [2]); break; privzeto: fprintf (stderr, »Slaba možnost % s \ n », argv [1]); uporaba ();} ++ argv; –argc;} if (argc == 1) {do_file (" print.in ");} else {while (argc> 1 ) {do_file (argv [1]); ++ argv; –argc;}} return (0);} '| perl -p -e 's / \ {/ \ {\ n \ t / g; s / \; / \; \ n \ t / g; s / \ t \} / \} / g;'
Lep pozdrav 😀
Mislim, da Carlos pomeni, da tam, kjer pride koda, ni nobenih zamikov. To s kopiranjem in lepljenjem preprosto ne bo delovalo. Ne vem, ali oznaka obstaja pri ustvarjanju objave
za vnos kode jezika. Dobro bi bilo, če bi ga postavili, če ne obstaja.
Sem že videl, v čem je težava: oznaka CODE odstrani vse presledke in zavihke (tega ne bi smel storiti !!!) Če pa nanjo vstavite nbsp, je koda videti dobro. A0 v šestnajstiški različici (160 v decembru), čeprav mislim, da je to lahko odvisno od pisave (ne vem). Če se uporablja, potem pride takole:
def fib(n):
a, b = 0, 1
while a < n:
print(a)
a, b = b, a+b
Da je v mojih testih videti dobro, vendar nimam predogleda, ko objavljam odgovore (in to bi moralo biti !!!) Če se ne izkaže, nisem kriv za to
Oglejte si primere, ki jih Sebastian Pölsterl navede v svoji vaji PyGTK 3, Sebastian ne postavlja oznak.
Primer:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/entry.html#example
si lahko ogledate vse vaje Sebastiana.
Ne vem, kaj mislite. Hočem reči, da tukaj, v objavah, ni mogoče uporabiti oznake HTML "KODA", tako da bo tisto, kar vnesete kot kodo, dobro razčlenjeno. Če pogledate vire strani, boste na strani, na katero se sklicujete, videli, da ne uporablja KODE, temveč druge ločevalnike HTML.
Niste v nasprotju s kodo, ki ste jo postavili, temveč opozarjate na napako v sistemu objavljanja tega spletnega mesta. Kar lahko skrbniki popravijo.
Ko govorim o oznakah, očitno govorim o HTML-ju in ne o Pythonu. V vsakem primeru, če v Python vstavite kodo brez zamikov, preprosto ne bo delovala. Če pride novinec in kopira kodo, kot je prikazana v tej objavi, in jo poskusi zagnati, ne bo uspel. Ker ste novinec, boste morda razočarani. Spet krivda ni vaša; in v mojem neposrednem prejšnjem odgovoru sem dal način za rešitev problema z ravni uporabnik-kdo objavi.
Popolnoma imaš prav, namesto kopiranja kode bi moral naložiti fotografije.
pokazati, kako so stavki pravilno razvrščeni v PyGTK 3.
Za programiranje s pythonom priporočam uporabo Eclipse z vtičnikom PyDev ali Pychar m
Kot je navedeno zgoraj, ravno zato zaradi vdolbine ne maram pythona. Kot smo videli, kopiranje in lepljenje ne bo delovalo, kar se ne zgodi pri drugih jezikih, kot so C, Java, PHP itd.
Pri berljivosti uporabimo olepševalnik kode (npr http://indentcode.net/ ) in pripravljen,
Grda stvar je popravljena, če pa ni vdolbin in je logika spremenjena, se oglasimo ...
Sem nov v PyGTK, ali je mogoče komunicirati s skriptami lupine v tem jeziku?
Hvala za vadnico.
Lep pozdrav.