Mēs izveidosim nelielu programmu ar PyGTK 3.0, kas darbojas arī PyGTK 3.4. Šī mazā GUI iemācīs jums sadalīt programmu divos vai vairāk failos.
Jūs varat apmeklēt Sebastiana Pölsterla apmācību par jauno PyGTK 3, šeit ir jaunā apmācība, es atstāju saiti:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Šis ir Sebastiana emuārs.
Viena šīs Sebastiana apmācības kritika ir tāda, ka tajā netiek mācīts sadalīt programmu daļās vai vairākos failos, būtu bijis labi, ja viņš parādītu piemēru, kā to izdarīt ar PyGTK 3.
Visas lielās un sarežģītās programmas ir sadalītas daudzos failos, un faili pat tiek ievietoti citos direktorijos, tas ir, tie atrodas dažādās mapēs.
Sāksim ar nelielu piemēru:
Šis ir rakstīšanas kods vienā failā ar nosaukumu gui.py. Mēs atveram Gedit teksta redaktoru vai redaktoru, kuru mēs izmantojam visvairāk, nokopējam zemāk esošo kodu un saglabājam to kā gui.py
no gi.repository importēt Gtk klasi gui (): def on_open_clicked (self, button): print "\" Open \ "was clicked" def on_close_clicked (self, button): print "Aizverošā programma" Gtk.main_quit () def __init__ (pats): 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 = 'Aizvērt') self.button.connect ("noklikšķināts", 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 (pats, poga): drukāt "\" Atvērt \ "poga tika noklikšķināta"
Tā ir funkcija, kas tiek aktivizēta terminālī, kad mēs noklikšķinām uz pogas Atvērt. Signāls tā aktivizēšanai ir:
self.button.connect ("clicked", self.on_open_clicked) def on_close_clicked (self, button): print "Programmas aizvēršana" Gtk.main_quit ()
Tā ir funkcija, kas tiek aktivizēta, kad mēs noklikšķinām uz pogas Aizvērt.
aizveriet mūsu vadīto programmu.
signāls tā aktivizēšanai ir
self.button.connect ("clicked", self.on_close_clicked) no gi.repository importēšanas Gtk ### mēs izsaucam PyGTK bibliotēkas ### class gui (): ### klases definīcija, ko sauc par gui, ir galvenā klase # ##
Logrīku deklarācija: logrīki ir programma, kuru iepriekš nosaka grafiskās saskarnes bibliotēkas, kuras mēs izmantojam. Piemēram, logrīki ir poga, logs, lodziņš utt. Tie ir logrīki, kurus mēs deklarējam savā programmā.
self.window = Gtk.Window () ### window ### self.box = Gtk.Box () ### box #### self.button = Gtk.Button (label = 'Open') ### # atvēršanas poga #### self.button = Gtk.Button (label = 'Aizvērt') #### aizvēršanas poga #### self.window.add (self.box) #### lodziņš atrodas logs ar nosaukumu logs #### self.box.pack_start (self.button, True, True, 0) ##### poga atrodas lodziņā ar nosaukumu lodziņš ### self.window.show_all () ## # mēs parādām visu logu ### gui = gui () ### izveido gui objektu ####
Mēs ievietojam savu programmu mapē, kuru darbvirsmā sauc par vienkāršu
Mēs atveram mapi ar termināli, manā gadījumā es izmantoju Nemo no Linux Mint 14.
Lai apkopotu, mēs ievietojam termināla python gui.py
skatiet attēlu.
Tagad mēs varam redzēt mūsu mazo programmu vai jauno logrīku, kas izveidots ar PyGTK 3 bibliotēkām
Tas ir vienkāršs logs ar divām pogām.
Tagad mēs sadalām programmu trīs daļās, pēc tam es atstāju kodu trim failiem.
Pirmais gui.py fails
no gi.repository importēt Gtk no iznīcināt importēt iznīcināt no io importēt io klase gui (iznīcināt, 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 ("noklikšķināts", self.on_open_clicked ) self.box.pack_start (self.button, True, True, 0) self.button = Gtk.Button (label = 'Aizvērt') self.button.connect ("noklikšķināts", self.on_close_clicked) self.box.pack_start (self.button, True, True, 0) self.window.show_all () Gtk.main () if __name__ == '__main__': gui = gui ()
Otrais io.py fails
klase io: def on_open_clicked (pats, poga): drukāt "\" Atvērt \ "poga tika noklikšķināta"
Trešais fails iznīcināt.py
no gi.repository importēt Gtk klasi iznīcināt: def on_close_clicked (self, button): print "Programmas aizvēršana" Gtk.main_quit ()
Mēs trīs gadījumus ievietojam vienā un tajā pašā mapē, mapi sauc par vienkāršu dalītu.
Lai apkopotu trīs failus. Mēs atveram mapi ar termināli un vienkārši ievietojam to atpakaļ terminālā
python gui.py
Veiktas izmaiņas gui.py kodā
no iznīcināt importēt iznīcināt ### paziņojumu, lai importētu mūsu failu iznīcināt.py ### no io importēt io ### paziņojumu, lai importētu mūsu failu io.py ### class gui (iznīcināt, io): #### uz klasi galvenais mēs pievienojam apakšklases iznīcināt un io ####
Var redzēt, ka teikums
def on_open_clicked (pats, poga): drukāt "\" Atvērt \ "poga tika noklikšķināta"
Tas nav gui.py, tas ir io.py failā
Teikums
def on_close_clicked (pats, poga):
drukāt "Aizvēršanas programma"
Gtk.main_quit ()
tas atrodas failā destr.py
Tādējādi mēs varam sadalīt programmu daudzos failos, kas vienlaikus atrodas dažādos direktorijos.
No otras puses, Python ir bezmaksas programmatūras pīlārs, un tas ir pielāgots darbam ar GTK 3.6 /3.8, tā nosaukums ir PyGTK. Python pielāgošanu KDE sauc par PyQT.
Python ir pielāgots Mac OS un WINDOWS.
Es ceru, ka šī PyGTK3 mini apmācība jums būs noderīga. Viņi var izteikt visu vēlamo konstruktīvo kritiku.
Es zinu arī dažus Gtk 3.4 /3.6 un Vala GTK 3.4 / 3.6.
http://www.youtube.com/watch?v=9ckRn_sx8CE
Visbeidzot, KDE lietotāji atvainojas, ka nedarīja mini apmācību KDE.
Kde es gribētu izmantot kdevelop (es domāju, ka tā to sauc), lai viegli izveidotu gui, bet man joprojām ir grūti atrast procesus, lai tas notiktu x lieta: '(
Lieliski tiem no mums, kas izmanto Python: D!
Sveicieni!
Sveiki, es jau ilgu laiku sekoju šai kopienai, un es neesmu ļoti pārliecināts, vai šī ir pirmā reize, kad es komentēju, vai arī es to jau izdarīju iepriekš 😀 (man nav ļoti dota iespēja rakstīt komentārus tīmeklī). Lieta ir tāda, ka es to daru, lai atstātu ieteikumu Elavam un KZKG ^ Gaara kā administratoriem, un es domāju, ka būtu lietderīgi pievienot sintakses krāsošanai paredzētu spraudni tagad, kad pēdējā laikā es redzu vairāk ziņu ar kodu dažādās programmēšanas valodās. Es zinu, ka ir diezgan daudz spraudņu, taču es neesmu izmēģinājis nevienu, jo es neesmu WordPress lietotājs, tāpēc es jums lieku padomāt par pieprasījuma dzīvotspēju. Es izmantoju šo iespēju un pajautāju pārējiem lasītājiem, ko viņi domā par šo ideju, jo es zinu, ka tur ir cilvēki, kuri dod priekšroku lasīt kodu bez jebkādas rotas. Es atvainojos, ja tas šeit jau ir komentēts un tas nez kāpēc tika noraidīts, jo neatceros, ka būtu redzējis diskusiju par šo tēmu.
Patiesība ir tāda, ka es vēlētos, lai būtu iespēja iekrāsot sintaksi, lai izceltu programmēšanas valodu kodu.
Tas palīdzētu lietotājiem, kuri vēlas apgūt programmēšanas valodas.
Bet, hei, man arī patīk forums un ka mēs varam kopīgi apspriest un mācīties.
GNU Emacs ir ērtāk, jo vismaz jāizvēlas, kurā programmēšanas valodas pārbaudītājā vēlaties strādāt (ja nevēlaties, lai procesoram būtu lielāks svars, izmantojiet GNU Nano un izbaudiet minimālismu labākajā gadījumā).
Elio estamos hablando de Worpress . Implementado en el blog Desde Linux. No tiene las funciones para dar color a las letras de los posteos .
Ak, piedodiet.
Naaa emacs ir ērts tiem, kam ir 84 pirksti XD .., normāliem cilvēkiem, tekstabiedram, sublimetext vai notepad ++ xd
Neticami ir tas, ka neesat iemācījies rakstīt, kas nepieciešams, lai varētu labi rīkoties ar GNU Emacs un tā īsinājumtaustiņiem. Turklāt tā GUI atvieglo izvēlņu lietošanu (to var izmantot operētājsistēmā Windows, taču to nav ieteicams darīt ar parasto režīmu, bet gan ar komandu uzvednes režīmu, lai win32 boikotētu jūsu skriptu).
Ļoti forša apmācība. Bet, starp citu, pitona avota kods nav apkopots, tā ir interpretēta valoda.
To var apkopot pēc pseido koda. Interpretētājam kaut ko attēlo nevis mašīnvaloda, bet gan baiti, bet procesu sauc arī par kompilētu. Šajā ziņā ir iespējams teikt, ka kaut kas ir sastādīts.
Varbūt labāk ir iemācīties pytgk2, jo jaunākā Windows pieejamā versija ir 2.24. 3. sērija ir pamanāma ar tās neesamību. Un sliktās mēles saka, ka rūķis katrā jaunajā versijā salauž visus apisus.
Es ieprogrammēju maketu ar GTK 3.4 / 3.6, un patiesība ir tāda, ka tie salauž jūsu pacietību un galvu, jums ir jāpārraksta kods, tagad es saprotu, kāpēc Linux Mint cilvēki sūdzas par GTK un GNOME projektu.
MINT pārstāvjiem es piekrītu GTK 2.4. Tas nenotika.
Laba apmācība un atsauces.
Tā kā kods ir ievietots, Python ievilkumi ir obligāti, un tie ir jāievēro koda piemērā.
Sveicieni!
Vai varat paskaidrot, no kā sastāv obligātās Python identifikācijas? Patiesību sakot, es to nekad neesmu dzirdējis. Esmu slikti pieradis pie PyGTK 2/3 forumiem angļu valodā un varbūt to nepamanīju.
Python jūs neizmantojat tādus taustiņus kā C vai sākuma / beigu blokus, piemēram, Pascal, bet viss tiek saprasts caur kodu, kuru piešķirat kodam. Tas ir, bloki tiek atzīti par ievilktiem. Tā ir īpašība, kuru es īpaši mīlu. Jūs izvairāties rakstīt atslēgas un tamlīdzīgas lietas.
Man tas vienkārši nepatīk, šķiet vienkāršāk ievietot divus mazus taustiņus vai std :: endl;, nekā redzēt, ja xd līnija ir labi tabulēta
: p Jūsu programmēšanas skolotājs jums ieliks 0. Vai vēl ļaunāk - viņi jūs atlaidīs no darba. Vissvarīgākais ir tas, ka kods ir lasāms ar visu, ko tas nozīmē
beidzot ar aizdares stiprinājumiem, tas padara mani daudz lasāmāku XD ..
Nopietni???
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);}
Tu redzi? Bez ievilkumiem tas nav ļoti labi saprotams. Un tas ir viegli. Ar sarežģītāku to saprot tikai sastādītājs. Lieta ir tā, ka, tā kā jums tik un tā ir JĀ atkāpjas (lai cilvēki saprastu kodu), kāpēc jums vajadzētu būt liekam un izmantot separatorus? Pietiks ar atkāpi un viss.
Protams, nekas nav saprotams, jo jūs neievēro c / c ++ programmas labas rakstīšanas noteikumus. Tas, ko jūs darījāt, ir derīgs jebkuram, piemēram, funkcijas ligzdošanai, funkcijas iekšpusē citas funkcijas iekšpusē, tad es gribu jūs redzēt xd, ja jūs to spējat saprast.
starp citu, ar diviem skatieniem tas kods ir viegli saprotams xD
To, ko es darīju, izdarīju ar nodomu, lai parādītu jums, ka bez ievilkumiem, kaut arī tas apkopo, ir ārkārtīgi grūti saprast jebkuru kodu. Tātad jums ir 2 noteikumi: atkāpe un aptveriet atdalītājus. Bet tas ir lieks. Python tulks vienkārši nepieņem šādu kodu. Un jums ir tikai viens noteikums: atkāpe. Viegli.
Bet hei, visi ar savām gaumēm.
Abi ir labi, ievilkti un bez ievilkumiem, manuprāt, es dodu priekšroku semikola stilam vai rubīnam, līdzīgi kā pitons, bet atkāpe nav nepieciešama.
To labāk saprot: P:
echo 'int main (int argc, char * argv []) {programmas_nosaukums = argv [0]; savukārt ((argc> 1) && (argv [1] [0] ==' - ')) {slēdzis (argv [ 1] [1]) {gadījums “v”: verbose = 1; break; case 'o': out_file = & argv [1] [2]; break; case 'l': line_max = atoi (& argv [1] [2]); break; noklusējums: fprintf (stderr, »Slikta opcija % 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; '
Sveiciens 😀
Es domāju, ka Karloss nozīmē, ka tur, kur parādās kods, nav atkāpju. Tas ar copy & paste vienkārši nedarbosies. Es nezinu, vai tags pastāv, veidojot ziņu
lai ievadītu valodas kodu. Būtu labi, ja viņi to ieliktu, ja tāda nav.
Es jau redzēju, kāda ir problēma: CODE tag noņem visas atstarpes un cilnes (to nevajadzētu darīt !!!) Bet, ja jūs uz tā ievietojat nbsp, kods izskatās labi. A0 hex (160 dec.), Lai gan es domāju, ka tas varētu būt atkarīgs no fonta (es nezinu). Ja to lieto, tas iznāk šādi:
def fib(n):
a, b = 0, 1
while a < n:
print(a)
a, b = b, a+b
Ka manos testos tas izskatās labi, bet man nav priekšskatījuma, kad es ievietoju atbildes (un tam vajadzētu būt !!!) Ja tas neiznāk, tā nav mana vaina culpa
Apskatiet piemērus, kurus Sebastians Pīlsters ievieto savā PyGTK 3 apmācībā, Sebastians neliek uzlīmes.
Piemērs :
http://python-gtk-3-tutorial.readthedocs.org/en/latest/entry.html#example
jūs varat redzēt visu Sebastiana apmācību.
Es nezinu, ko tu domā. Es saku, ka šeit, ierakstos, nav iespējams izmantot HTML tagu «CODE», lai tas, ko jūs ievietojat kā kodu, un tas iznāktu labi ievilkts. Jūsu norādītajā lapā, ja redzat lapas avotus, redzēsit, ka tajā netiek izmantots CODE, bet tiek izmantoti citi HTML atdalītāji.
Tas nav pret jūsu ievietoto kodu, bet gan norāda uz kļūdu šīs vietnes norīkošanas sistēmā. Ko, iespējams, administratori var novērst.
Kad es runāju par tagiem, es acīmredzami runāju par HTML, nevis par Python. Jebkurā gadījumā, ja jūs ievietojat kodu bez ievilkumiem Python, tas vienkārši nedarbosies. Ja atnāk iesācējs un nokopē kodu, kāds tas ir redzams šajā ierakstā, un mēģina to palaist, viņš neizdosies. Jūs varat būt neapmierināts, jo esat iesācējs. Atkal, vaina nav jūsu; un savā tūlītējā iepriekšējā atbildē es darīju veidu, kā atrisināt problēmu no lietotāja-kurš-sūtījumu līmeņa.
Jums ir pilnīga taisnība, koda kopēšanas vietā man vajadzēja augšupielādēt fotoattēlus.
lai parādītu, kā PyGTK 3 tiek pareizi sakārtoti paziņojumi.
Lai programmētu ar pitonu, iesaku izmantot Eclipse ar PyDev spraudni vai Pychar m
Kā minēts iepriekš, tieši tāpēc man nepatīk pitons ievilkumu dēļ. Kā redzējām, kopēšana un ielīmēšana nedarbosies, kas nenotiek ar citām valodām, piemēram, C, Java, PHP utt.
Lasāmības lieta, mēs izmantojam koda uzlabotāju (piemēram, http://indentcode.net/ ) un gatavs,
Neglīts ir novērsts, bet, ja nav atkāpes un loģika ir mainīta, mēs izklausāmies ..
Esmu jauns PyGTK lietotājs, vai šajā valodā ir iespējams mijiedarboties ar čaulas skriptiem?
Paldies par apmācību.
Sveicieni.