Teeme PyGTK 3.0-ga väikese programmi, mis töötab ka PyGTK 3.4 puhul. See väike graafiline kasutajaliides õpetab teid programmi jagamiseks kaheks või enamaks failiks.
Võite külastada Sebastian Pölsterli juhendit uue PyGTK 3 kohta, siin on uus õpetus, jätan lingi:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
See on Sebastiani ajaveeb.
Üks Sebastiani antud õpetuse kriitika on see, et selles ei õpetata programmi osadeks või mitmeks failiks jagama, oleks olnud hea, kui ta oleks näidanud, kuidas seda PyGTK 3-ga teha.
Kõik suured ja keerukad programmid on jagatud paljudeks failideks ja failid paigutatakse isegi teistesse kataloogidesse, see tähendab, et nad asuvad erinevates kaustades.
Alustame väikesest näitest:
Siin on kirjutamiskood ühes failis nimega gui.py. Avame Gediti tekstiredaktori või enim kasutatava redaktori, kopeerime alloleva koodi ja salvestame selle kui gui.py
failist gi.repository import Gtk klass gui (): def on_open_clicked (ise, nupp): print "\" Ava \ "nuppu klõpsati" def on_close_clicked (ise, nupp): print "Sulgev rakendus" Gtk.main_quit () def __init__ (ise): self.window = Gtk.Window () self.window.connect ('delete-event', Gtk.main_quit) self.box = Gtk.Box () self.window.add (self.box) self. nupp = Gtk.Button (silt = 'Ava') self.button.connect ("clicked", self.on_open_clicked) self.box.pack_start (self.button, True, True, 0) self.button = Gtk.Button ( label = 'Sule') self.button.connect ("clicked", 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 (ise, nupp): print "\" Ava \ "nuppu klõpsati"
See on funktsioon, mis aktiveeritakse terminalis, kui klõpsame nuppu Ava. Selle aktiveerimise signaal on:
self.button.connect ("clicked", self.on_open_clicked) def on_close_clicked (self, button): print "Rakenduse sulgemine" Gtk.main_quit ()
See on funktsioon, mis aktiveeritakse, kui klõpsame sulgemisnuppu.
sulgege meie käivitatav programm.
signaal selle aktiveerimiseks on
self.button.connect ("clicked", self.on_close_clicked) gi.repository import Gtk ### kutsume PyGTK teegid ### class gui (): ### klassi määratlus nimega gui on põhiklass # ##
Vidinate deklaratsioon: vidinad on programm, mille on eelnevalt määranud meie kasutajaliidese teegid. Näiteks vidinad on nupp, aken, kast jne. Need on vidinad, mida me oma programmis deklareerime.
self.window = Gtk.Window () ### window ### self.box = Gtk.Box () ### box #### self.button = Gtk.Button (label = 'Open') ### # avamisnupp #### self.button = Gtk.Button (silt = 'Sule') #### sulgemisnupp #### self.window.add (self.box) #### kast asub aken nimega aken #### self.box.pack_start (self.button, True, True, 0) ##### nupp asub kastis nimega box ### self.window.show_all () ## # näitame kogu akent ### gui = gui () ### loo gui objekt ####
Me paigutame oma programmi kausta, mida nimetatakse töölaual meie jaoks lihtsaks
Avame kausta terminaliga, minu puhul kasutan Linux Mint 14 Nemot.
Kompileerimiseks sisestasime terminali pythoni gui.py
vaata pilti.
Nüüd näeme PyGTK 3 teekidega loodud väikest programmi või uut vidinat
See on lihtne kahe nupuga aken.
Nüüd jagame programmi kolmeks osaks, allpool jätan kolme faili koodi.
Esimene gui.py fail
gi.hoidlast import Gtk hävitamisest import hävitamine io impordist io klass gui (hävitama, io): def __init __ (ise): 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 ("clicked", self.on_open_clicked ) self.box.pack_start (self.button, True, True, 0) self.button = Gtk.Button (label = 'Close') self.button.connect ("clicked", self.on_close_clicked) self.box.pack_start (self.button, True, True, 0) self.window.show_all () Gtk.main () if __name__ == '__main__': gui = gui ()
Teine io.py fail
klass io: def on_open_clicked (ise, nupp): print "\" Ava \ "nuppu klõpsati"
Kolmas fail destr.py
failist gi.repository import Gtk klass hävitada: def on_close_clicked (ise, nupp): print "Sulgev rakendus" Gtk.main_quit ()
Kolm faili paigutame meie puhul samasse kausta, kausta nimetatakse lihtsaks jagatuks.
Kolme faili koostamiseks. Avame terminaliga kausta ja paneme selle lihtsalt terminali tagasi
python gui.py
Gui.py koodis tehtud muudatused
alates hävitama import hävitama ### käsu meie faili importimiseks hävitama klassi peamine lisame alamklassid hävitama ja io ####
Näete, et lause
def on_open_clicked (ise, nupp): print "\" Ava \ "nuppu klõpsati"
Seda pole gui.py, see on io.py failis
Lause
def on_close_clicked (ise, nupp):
print "Sulgev rakendus"
Gtk.main_quit ()
see asub failis destr.py
Seega saame programmi jagada paljudeks failideks, mis asuvad korraga erinevates kataloogides.
Teiselt poolt on Python vaba tarkvara sammas ja see on kohandatud töötama GTK 3.6 /3.8-ga, selle nimi on PyGTK. Pythoni kohandust KDE jaoks nimetatakse PyQT-ks.
Python on kohandatud Mac OS-i ja WINDOWS-i jaoks.
Loodan, et see PyGTK3 miniõpetus on teile abiks olnud. Nad saavad esitada kogu sooviva konstruktiivse kriitika.
Tean ka mõnda Gtk 3.4 /3.6 ja Vala GTK 3.4 / 3.6.
http://www.youtube.com/watch?v=9ckRn_sx8CE
Lõpuks vabandavad KDE kasutajad, et nad KDE jaoks miniõpetust ei teinud.
Kde-s eelistan gui loomiseks hõlpsasti kdevelopi (ma arvan, et seda nimetatakse), kuid mul on siiski raske leida protsesse selle juhtumiseks x asi: '(
Suurepärane meile, kes me Pythoni kasutame: D!
Tervitused!
Tere, ma olen seda kogukonda juba pikka aega jälginud ja ma pole eriti kindel, kas kommenteerin seda esimest korda või olen seda juba enne soja teinud (mulle pole eriti antud veebi kommentaare kirjutada). Asi on selles, et teen seda selleks, et jätta ettepanek Elavile ja KZKG ^ Gaarale kui administraatoritele ning minu arvates oleks hea mõte lisada süntaksi värvimiseks pistikprogramm nüüd, kui viimasel ajal näen rohkem postitusi koodiga erinevates programmeerimiskeeltes. Ma tean, et pistikprogramme on üsna palju, kuid ma pole neid proovinud, kuna ma pole WordPressi kasutaja, nii et jätan teile mõtte taotluse elujõulisuse üle. Kasutan seda võimalust ja küsin ülejäänud lugejatelt, mida nad sellest ideest arvavad, sest tean, et seal on inimesi, kes eelistavad koodi ilma ilustamata lugeda. Vabandan, kui seda on siin juba kommenteeritud ja see mingil põhjusel tagasi lükati, kuna ma ei mäleta, et oleksin sellel teemal arutanud.
Tõsi on see, et sooviksin võimalust värvida süntaks, et programmeerimiskeelte kood esile tõsta.
See aitaks kasutajaid, kes soovivad õppida programmeerimiskeeli.
Aga hei, mulle on ka foorum mugav ja et saame koos arutada ja õppida.
GNU Emacs on mugavam, sest vähemalt peate valima, millises programmeerimiskeele kontrolleris soovite töötada (kui te ei soovi oma protsessorile suuremat kaalu, kasutage GNU Nano ja nautige parimal juhul minimalismi).
Elio räägime WordPressist. Rakendatud blogis Desde Linux. Sellel puuduvad funktsioonid postituste tähtede värvimiseks.
Vabandust.
Naaa emacs on mugav neile, kellel on 84 sõrme XD .., normaalsed inimesed, tekstikaaslane, sublimetext või märkmik ++ xd
Ebatõenäoline on see, et te pole õppinud kirjutamist, mis on vajalik selleks, et saaksite GNU Emacsi ja selle klaviatuuri otseteedega hästi hakkama saada. Lisaks muudab selle graafiline kasutajaliides teie menüüde kasutamise lihtsaks (seda saab kasutada Windowsis, kuid seda ei soovitata teha tavarežiimis, vaid käsuviipade režiimis, et win32 teie skripti ei boikoteeriks).
Väga lahe õpetus. Kuid muide, pythoni lähtekoodi ei kompileerita, see on tõlgendatud keel.
Selle saab kompenseerida pseudokoodiks. Tõlgile ei tähenda midagi masinkeel, vaid baidid, kuid protsessi nimetatakse ka kompileerituks. Selles mõttes on võimalik öelda, et midagi on koostatud.
Võib-olla on parem õppida pytgk2, sest uusim Windowsi jaoks saadaval olev versioon on 2.24. 3. sari on silmatorkav oma puudumise tõttu. Ja halvad keeled ütlevad, et gnome murrab igas uues versioonis kõik apid.
Programmeerin maketi GTK 3.4 / 3.6-ga ja tõsi on see, et need murravad teie kannatlikkust ja pead, peate koodi uuesti kirjutama, nüüd saan aru, miks Linux Mint'i inimesed GTK ja GNOME projekti üle kurdavad.
MINTi omadega nõustun GTK 2.4-ga, seda ei juhtunud.
Hea õpetus ja viited.
Lihtsalt detail, kuna kood on sisestatud, on Pythonis taanded kohustuslikud ja neid tuleks koodikoodis järgida.
Tervitused!
Kas oskate selgitada, millest koosnevad Pythoni kohustuslikud identifikaatorid? Ma ütlen teile tõtt, ma pole seda kunagi kuulnud. Olen PyGTK 2/3 ingliskeelsete foorumitega halvasti harjunud ja võib-olla jätan selle kahe silma vahele.
Pythonis ei kasutata võtmeid nagu C-s ega algus- / lõpplokke nagu Pascalis, kuid kõike mõistetakse koodile antud taande kaudu. See tähendab, et plokid on taandatud. See on funktsioon, mida ma eriti armastan. Väldite võtmete kirjutamist ja muud sellist.
Mulle see lihtsalt ei meeldi, tundub lihtsam panna kaks väikest võtit või std :: endl;, kui näha, kui xd-rida on hästi tabeldatud
: p Teie programmeerimise õpetaja paneb teile 0. Või mis veelgi hullem, nad vallandavad teid töölt. Kõige olulisem on see, et kood on loetav koos kõige sellega, mida see tähendab
lõpetades sulgudega, muudab see mind XD palju loetavamaks ..
Tõsiselt ???
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);}
Sa näed? Ilma taandeta pole sellest eriti hästi aru. Ja see on lihtne. Keerulisema puhul saab sellest aru ainult koostaja. Asi on selles, et kuna peate nagunii taanduma (et inimesed saaksid koodist aru), siis miks oleks see üleliigne ja kasutaks eraldajaid? Aitab taandest ja ongi kõik.
Muidugi ei saa midagi aru, sest te ei austa programmi hea kirjutamise reegleid c / c ++ keeles. See, mida te tegite, kehtib mis tahes kohta, näiteks funktsiooni pesitsemise kohta, funktsiooni sees teise funktsiooni sees, mis on teise sees, siis tahan teid näha xd, kui suudate sellest aru saada.
muide, kahe välimusega on see kood hõlpsasti mõistetav xD
Mida ma tegin, tegin seda tahtlikult, et näidata teile, et ilma taandeta on vaatamata kompileerimisele ühestki koodist aru saada. Nii et teil on 2 reeglit: taandada ja hõlmata eraldajatega. Kuid see on üleliigne. Pythonis pole tõlk sellist koodi lihtsalt aktsepteerinud. Ja teil on ainult üks reegel: taane. Lihtne.
Aga hei, kõik oma maitsega.
Mõlemad on head, taandatud ja taandeta, minu arust eelistan semikoolonistiili või rubiini, sarnaselt pütooniga, kuid taandamine pole vajalik.
Sellest saab paremini aru: P:
echo 'int main (int argc, char * argv []) {programmi_nimi = argv [0]; samas ((argc> 1) && (argv [1] [0] ==' - ')) {switch (argv [ 1] [1]) {juhtum v: verbose = 1; break; case 'o': out_file = & argv [1] [2]; break; case 'l': line_max = atoi (& argv [1] [2]); break; vaikimisi: fprintf (stderr, »Vale variant % s \ n », argv [1]); use ();} ++ 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;'
Tervitused 😀
Ma arvan, et Carlos tähendab, et seal, kus kood välja tuleb, pole taandeid. See copy & paste abil lihtsalt ei tööta. Ma ei tea, kas postituse loomisel on silt olemas
keelekoodi sisestamiseks. Oleks hea, kui nad selle välja paneksid, kui seda pole.
Ma nägin juba, milles probleem on: CODE silt eemaldab kõik tühikud ja vahelehed (see ei tohiks seda teha !!!) Aga kui panete sellele nbsp, siis näeb kood hea välja. A0 kuusnurgas (160 dets.), Kuigi ma arvan, et see võib sõltuda fondist (ma ei tea). Kui seda kasutatakse, tuleb see välja nii:
def fib(n):
a, b = 0, 1
while a < n:
print(a)
a, b = b, a+b
Et minu testides näeb see hea välja, kuid mul pole vastuste postitamisel eelvaadet (ja see peaks olema !!!) Kui see välja ei tule, pole see minu süü 😉
Vaadake näiteid, mille Sebastian Pölsterl oma PyGTK 3 õpetuses esitab, Sebastian silte ei pane.
Näide:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/entry.html#example
näete kõiki Sebastiani õpetusi.
Ma ei tea, mida sa mõtled. Mida ma ütlen, on see, et siin, postitustes, pole võimalik kasutada HTML-märgendit «KOOD», nii et see, mida te koodina panete, ja see tuleks hästi välja. Viidatud lehel näete lehe allikaid, et see ei kasuta CODE, vaid kasutab teisi HTML-i eraldajaid.
See pole vastuolus teie sisestatud koodiga, vaid juhib tähelepanu selle saidi postitussüsteemi puudusele. Mida administraatorid võivad parandada.
Kui ma räägin siltidest, siis ilmselgelt räägin HTML-ist, mitte Pythonist. Igal juhul, kui panete Pythonis ilma taandeta koodi, siis see lihtsalt ei toimi. Kui tuleb algaja ja kopeerib koodi, nagu see selles postituses kuvatakse, ja proovib seda käivitada, siis ta ebaõnnestub. Võite olla pettunud, kuna olete algaja. Jällegi, süü pole teie oma; ja oma otseses eelmises vastuses andsin ma võimaluse probleemi lahendamiseks kasutaja-kes-postituste tasemelt.
Teil on täiesti õigus, oleksin pidanud koodi kopeerimise asemel fotod üles laadima.
näidata, kuidas PyGTK 3-s on avaldused õigesti järjestatud.
Püütoniga programmeerimiseks soovitan kasutada Eclipse'i koos pistikprogrammiga PyDev või Pychar m
Nagu ülalpool kommenteeritud, siis just sellepärast ei meeldi mulle pütoon taandeprobleemi tõttu. Nagu nägime, ei hakka kopeerimine ja kleepimine toimima, mida ei juhtu teiste keeltega nagu C, Java, PHP jne.
Loetavuse asi, rakendame koodi kaunistajat (näiteks http://indentcode.net/ ) ja valmis,
Inetu on fikseeritud, kuid kui taandet pole ja loogika on muutunud, siis kõlame ..
Olen PyGTK-s uus, kas selles keeles on võimalik shelliskriptidega suhelda?
Täname õpetuse eest.
Tervitused.